所以我在我的HTML文件中有这个
<script type="text/javascript" src="load.js"> </script>
<script type="text/javascript" src="load2.php"> </script>
看到你可以使用js脚本标记调用外部php文件,并且首先渲染php文件中的任何js。
但我的问题是,我不能将load.js中的JS变量分配给load2.php中的php变量,但是,我可以使用echo "alert(js variable);";
进行警报这样告诉我它找到变量并且我可以使用它,但我无法将其分配给php变量:/任何帮助吗?
答案 0 :(得分:1)
在JavaScript和php之间工作时,你必须记住一个是客户端(JavaScript)和另一个服务器端(php)。因此,php可以在将值发送到客户端之前将值插入到javascript中,然后进行渲染(处理)。虽然反之亦然,因为JavaScript的“范围”在客户端计算机上。
解决这个问题的方法是使用来自客户端的AJAX请求返回服务器,发回所需的数据/变量值。
JQuery提供了一个易于使用的AJAX功能库。
答案 1 :(得分:0)
PHP是服务器端,JS是客户端。这意味着PHP将在JS被分配之前运行。 PHP文件获取JS变量的唯一方法是使用Ajax发布它
答案 2 :(得分:0)
一种选择是动态加载PHP生成的脚本并将一些GET
参数传递给PHP。这仍然需要ajax,但可以使用jQuery干净利落地完成。如果你使用jQuery,this是getScript
的文档。
修改
因此,您的HTML文件应如下所示:
<!-- your first javascript file -->
<script type="text/javascript" src="load.js"></script>
<!-- load jQuery library -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript>
// get the variable from your first javascript file
// via a getter function or global variable
var x = getVarFromFirstFile();
// this will load your second 'javascript' (generated by php) file
// and will pass the variable 'x' as a GET parameter to the php
$.getScript("load2.php?x="+x);
</script>
然后,load2.php中的php可以访问变量x(最初来自load.js),如下所示:
<?php
$x = $_GET['x'];
...