[英]Using JQuery, AJAX and PHP
我正在創建一個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,然后使用此腳本的響應重新填充div(getInfo.php)。 例如,一行將具有以下PHP代碼生成鏈接:
<label class="moreInfo"><a name="test01" onClick="getInfoFromPHP(<?php echo $data[$id]; ?> )">Get Info</a></label>
因此當表格由PHP生成時,點擊時鏈接會傳遞JS函數的值。
我現在需要做的是將值發送到PHP腳本,該腳本將再次查詢數據庫,並將結果插入“contents”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%3EHello ”你好
PHP腳本僅執行以下操作:
<?php
session_start();
$networkID = $_POST['networkID'];
echo "<h2>Hello World</h2>";
?>
將數據發送到PHP腳本並將其加載到div中的最佳方法是什么?
感謝您的任何反饋。
在success函數中,放入$('#contents')。html(html); 而不是負載。
success: function(html) {
將html作為一個字符串返回,不需要像你在這里嘗試一樣'加載' -
$('#contents').load(html);
將該行更改為此
$('#contents').html(html);
更好的方法是使用$ .ajax發送請求。 在成功回調中,您可以分析結果,並執行您想要的操作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.