我在 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服务器返回的网页(已经执行了相关页面的php代码)后,您可以运行相关的javascript逻辑。执行完javascript代码并将相关值分配给相关javascript变量后,您可以使用表单提交或ajax发送该javascript变量值以供另一个php页面使用(或处理并获取相同php页面的请求) )。
你真的不能。PHP 在服务器上生成,然后发送到浏览器,在那里 JS 开始做它的事情。所以,无论页面上的 JS 发生了什么,PHP 都不知道,因为它已经完成了。@manjula 是正确的,如果您希望发生这种情况,则必须使用 POST 或 ajax。