我正在创建一个 PHP 站点并遇到了以下问题,我希望能够单击页面上的超链接,将小数据项发送到 php 脚本,让脚本执行其功能,然后返回结果。
我在这个网站上使用 AJAX 让每个页面加载到网站的 div 部分,所有页面、数据和响应都加载到这个中央 div 中,如下所示:
<html>
<body>
<div id="topMenuBar">
<div id="contents">
//ALL DATA IS LOADED HERE...//
</div>
</div>
</body>
</html>
因此,当从顶部菜单中选择一个页面时,我只需运行以下代码:
$('#topMenuBar a').click(function(e)
{
e.preventDefault();
$('#contents').load($(this).attr('href'), function()
{
});
});
现在页面加载到内容部分,我正在加载一个名为“results.php”的页面,该页面连接到数据库,查询它,并创建一个带有结果的 HTML 表。每个表格行都有一个小的超链接,单击该超链接时,旨在将一个值发送到另一个 PHP 脚本,然后清除内容 div,然后使用来自该脚本 (getInfo.php) 的响应重新填充 div。例如,一行将有以下 PHP 代码生成一个链接:
<label class="moreInfo"><a name="test01" onClick="getInfoFromPHP(<?php echo $data[$id]; ?> )">Get Info</a></label>
所以当PHP生成表格时,点击链接时会传递一个JS函数的值。
我现在需要做的是将值发送到 PHP 脚本,该脚本将再次查询数据库,并将结果插入“内容”div。我一直在尝试以下功能。
function getInfoFromPHP(myVar){
var netID = myVar;
$.ajax({
url: "getInfo.php",
type: "POST",
data: {
networkID: netID
},
success: function(html) {
$('#contents').empty();
$('#contents').load(html);
}
});
};
当我调用该函数时,它似乎确实将数据发送到脚本,但我从 firebug 收到以下错误:
POST http://127.0.0.1/private/networks/includes/leave_a_network.php - 200 OK -15ms
GET http://127.0.0.1/%3Ch2%3EHello 403 Forbidden 21ms "NetworkError: 403 Forbidden - http://127.0 .0.1/%3Ch2%3E你好"你好
PHP 脚本仅执行以下操作:
<?php
session_start();
$networkID = $_POST['networkID'];
echo "<h2>Hello World</h2>";
?>
将数据发送到 PHP 脚本并将其加载到 div 中的最佳方法是什么?
感谢您的任何反馈。