我正在努力做到这一点:
我有一个php全局变量$currentID
,并且使用简单的jquery脚本检查url的哈希中是否有“id”(页面),如果是,我想将该值赋给{{ 1}}。
我一直在阅读,我注意到我将使用Ajax,但我没有管理它。
我的代码现在是:
$currentID
你能帮帮我吗?提前谢谢。
答案 0 :(得分:4)
PHP是一种服务器端语言,这意味着一旦将数据发送到浏览器,PHP变量和数据就无法更改......
但是,使用AJAX,您可以向PHP页面发送另一个请求,并根据结果更改DOM中的数据。
考虑一下:
var id = parent.location.hash.split('#')[1];;
$.ajax({
url: 'http://www.example.net/id.php',
dataType: 'JSON',
data: {id: id},
success: function(data){
// Do whatever you want with you JSON object
// The following will log what has been returned
console.log(data);
// If you want to update your id variable then simply do this
id = data.id;
// You can then change elements in the DOM that reflect what your PHP
// variable originally set
$('#id').text(id);
}
});
以下内容将包括加载页面时发送的$currentID
...但是,您可以使用上述脚本更新此文本。
<p>My current ID is: <span id="id">$currentID</span></p>
请注意:这不会更新PHP变量,因为一旦PHP将数据发送到浏览器,脚本已终止且无法修改,也无法访问变量。上面的脚本只会更新HTML中的文本。
在开始编程PHP之前,您需要了解服务器端脚本的功能,这非常基本:
my.php
最重要的是,一旦PHP生成并将您的页面数据发送到浏览器,那么该页面上就不存在与PHP无关的内容了!它是纯HTML,或者它可能是任何其他类型的文档......
解释它的另一种方法是:
您的服务器会将PHP页面视为:
echo "<p>My current ID is: <span id=\"id\">$currentID</span></p>";
您的浏览器(javascript看到它),看到这样的页面
<p>My current ID is: <span id="id">1</span></p>
没有PHP变量可供访问,它根本就不存在!
有关详细信息,请参阅以下内容: