将js值赋给php

时间:2013-07-29 19:06:04

标签: php javascript variables

所以我在我的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变量:/任何帮助吗?

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

一种选择是动态加载PHP生成的脚本并将一些GET参数传递给PHP。这仍然需要ajax,但可以使用jQuery干净利落地完成。如果你使用jQuery,thisgetScript的文档。

修改

因此,您的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'];
 ...