我在 JavaScript 中有以下代码:
<script>
var a="Hello";
</script>
PHP代码: -
<?php
$variable = // I want the above JavaScript variable 'a' value to be stored here
?>
注意:我不希望它在表单提交中。我在 JavaScript 中有一些逻辑,我想在同一个 PHP 页面中使用它......请让我知道我该怎么做。
我在 JavaScript 中有以下代码:
<script>
var a="Hello";
</script>
PHP代码: -
<?php
$variable = // I want the above JavaScript variable 'a' value to be stored here
?>
注意:我不希望它在表单提交中。我在 JavaScript 中有一些逻辑,我想在同一个 PHP 页面中使用它......请让我知道我该怎么做。
你必须记住,如果 JS 和 PHP 存在于同一个文档中,PHP 将首先执行(在服务器上),JS 将在第二个执行(在浏览器上)——两者永远不会交互(除了你用PHP输出JS,这并不是两个引擎之间的真正交互)。
考虑到这一点,最接近的方法是在 JS 中使用 PHP 变量:
<?php
$a = 'foo'; // $a now holds PHP string foo
?>
<script>
var a = '<?php echo $a; ?>'; //outputting string foo in context of JS
//must wrap in quotes so that it is still string foo when JS does execute
//when this DOES execute in the browser, PHP will have already completed all processing and exited
</script>
<?php
//do something else with $a
//JS still hasn't executed at this point
?>
正如我所说,在这种情况下,PHP(全部)首先在服务器上执行,导致:
$a
要创建为字符串 'foo'的 PHP 变量$a
在某些 JavaScript(当前未执行)的上下文中输出的值$a
正如所写,这导致以下内容被发送到浏览器执行(为了清楚起见,我删除了 JS 注释):
<script>
var a = 'foo';
</script>
然后,也只有到那时,JS 才会开始执行,并将其自己的变量a
设置为“foo”(此时 PHP 不在图片范围内)。
换句话说,如果两者存在于同一个文档中,并且没有与服务器进行额外的交互,那么 JS 在 PHP 中不会产生任何影响。此外,PHP 对 JS 的影响仅限于在 JS 的上下文中输出一些 JS 或某些东西的简单能力。
<html>
<head>
<script>
var a="Hello";
</script>
</head>
<body>
<?php
echo $variable = "<script>document.write(a)</script>"; //I want above javascript variable 'a' value to be store here
?>
</body>
理想的方法是通过 AJAX 调用传递它,但对于快速而肮脏的方法,您所要做的就是在$_GET
参数中使用此变量重新加载页面 -
<script>
var a="Hello";
window.location.href = window.location.href+'?a='+a;
</script>
您的页面将重新加载,现在在您的 PHP 中,您将可以访问该$_GET['a']
变量。
<?php
$variable = $_GET['a'];
?>
如果这与表单提交有关,请在表单内使用隐藏输入并将隐藏输入值更改为此变量值。然后您可以在 php 页面中获取隐藏的输入值,并在表单提交后将其分配给您的 php 变量。
更新:
根据您的编辑,您似乎不了解 javascript 和 php 的工作原理。Javascript 是一种客户端语言,而 php 是一种服务器端语言。因此,当您在服务器中执行相关页面时,您无法执行 javascript 逻辑并将该变量值用于 php 变量。您可以在客户端浏览器处理从 Web 服务器返回的网页后运行相关的 javascript 逻辑(该网页已经执行了相关页面的 php 代码)。在执行 javascript 代码并将相关值分配给相关 javascript 变量之后,您可以使用表单提交或 ajax 发送该 javascript 变量值以供另一个 php 页面使用(或处理并获取相同 php 页面的请求)。
你真的不能。PHP 在服务器上生成,然后发送到浏览器,JS 开始做这件事。所以,无论页面上的 JS 发生什么,PHP 都不知道,因为它已经完成了。@manjula 是正确的,如果您希望这种情况发生,您必须使用 POST 或 ajax。
JavaScript 变量 = PHP 变量尝试如下:-
<script>
var a="Hello";
<?php
$variable='a';
?>
</script>
注意:-它仅在您在脚本标记下执行 php 代码时运行。我有一个成功初始化 php 变量。
您可以使用 AJAX 解决此问题。您不需要为 AJAX 加载 JQuery,但它比原生 JS 具有更好的错误和成功处理能力。
我会这样做:
1)为页面上的所有锚点添加一个点击事件监听器。2)点击时,您可以为您的php设置一个ajax请求,在您设置锚ID或文本值的POST-DATA 3)php获取该值,您可以为您的数据库设置一个请求。然后返回所需的值并将其回显到 ajax 请求。4)您的ajax请求的成功功能正在做一些事情
有关 ajax 请求的更多信息,请查看此处:
-> Ajax-Request NATIVE https://blog.garstasio.com/you-dont-need-jquery/ajax/
一个简单的 JQuery 示例:
$("button").click(function(){
$.ajax({url: "demo_test.txt", success: function(result){
$("#div1").html(result);
}});
});
在你看来:
<?php $value = '<p id="course_id"></p>';?>
javascript代码:
var course = document.getElementById("courses").value;
document.getElementById("course_id").innerHTML = course;