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 生成 HTML 的服务器,它将把您指定的任何变量写入 HTML
- 然后将数据作为 HTML而非 PHP发送回浏览器,您可以在浏览器中使用 javascript 对 DOM 进行更改。
底线是,一旦 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 变量,它根本不存在!
有关详细信息,请参阅以下内容:
https://softwareengineering.stackexchange.com/questions/171203/what-are-the-difference-between-server-side-and-client-side-programming