带有 PHP 代码的页面在服务器端执行。PHP 被解释,然后内容被发送到您的浏览器。收到数据后,您的 JS 代码在客户端执行(感谢您的浏览器的 JS 机器)。
如果您想在不重新加载任何内容的情况下显示信息,您有两种解决方案:
如果我恢复该过程可能是:
1)第一个请求在您的主脚本main.php上
2)页面显示您的所有项目(仅嵌入ID)并包含信息容器(隐藏且为空)
例子
<!-- Your list of link with article ID -->
<div>
<a class="articleLink" id="123" href="#">View</a>
<a class="articleLink" id="124" href="#">View</a>
<a class="articleLink" id="125" href="#">View</a>
</div>
<!-- The bloc that will contain info and will be shown in a popup later (hidden) -->
<div id="divInfo">
<input type="text" name="name" value=""/>
<input type="text" name="description" value=""/>
</div>
<script>
$(document).ready(function() {
// add listener to all link
$(".articleLink").click(function(mouseEvent) {
// Retrieve the article ID
var myId = $(this).attr('id');
// Ajax call with the id of the link
// onSuccess, fill the divInfo and show it
$.ajax('getInfo.php', {
dataType: 'json',
type: 'POST',
data: {
articleId: myId
},
success: function(data, status, xhrObj) {
// The data is received, update the info container
$("#divInfo input[name=name]").val(data.name);
$("#divInfo input[name=description]").val(data.desc);
// Show the div in a popup
//...
}
});
return false;
});
});
</script>
3)您单击一个链接,它将运行对第二个 PHP 脚本的 ajax 调用:getInfo.php,并给出指定的 ID
4)脚本在您的数据库中检索数据并最终返回信息(例如 JSON 格式)
假设您的 PHP getInfo.php将返回JSON
{"name":"an article name","description":"the article description"}
注意:您可以使用函数在 PHP 中从数组轻松生成 JSON
json_encode()
5)收到数据时调用 Ajax 调用的 onSuccess 方法,您可以使用数据填写表单(这是唯一的并且已经存在于页面中 - 并且是隐藏的)。
祝你好运