-1

所以我的 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变量:/有什么帮助吗?

4

3 回答 3

1

在 JavaScript 和 php 之间工作时,您必须记住一个是客户端 (JavaScript),另一个是服务器端 (php)。因此 php 可以在将值发送到客户端然后呈现(处理)之前将值插入到 javascript 中。虽然反向不可能发生,因为 JavaScript 的“范围”在客户端计算机上。

解决这个问题的方法是使用从客户端返回到服务器的 AJAX 请求,发回您需要的数据/变量值。

JQuery 提供了一个易于使用的具有 AJAX 功能的库。

请参阅http://api.jquery.com/jQuery.ajax/

于 2013-07-29T19:13:37.550 回答
0

PHP是服务器端,JS是客户端。这意味着 PHP 将在 JS 被分配之前运行很长时间。PHP 文件获取 JS 变量的唯一方法是使用 Ajax 发布它

于 2013-07-29T19:09:30.573 回答
0

一种选择是动态加载 PHP 生成的脚本并将一些GET参数传递给 PHP。这仍然需要 ajax,但可以使用 jQuery 干净地完成。如果您使用 jQuery,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'];
 ...
于 2013-07-29T19:33:57.617 回答