我有一個PHP網站,允許用戶搜索圖書館目錄,然後選擇/添加書到購物車。這一切運作良好,但我們希望在搜索結果表中實現AJAX,以便與其單擊運行另一個php腳本的鏈接將選定記錄添加到其購物車中,而不是在同一頁面內嵌入。這將刪除搜索結果頁面,當他們「選擇」一條記錄時刷新,並且它會彈出回頁面頂部(如果您位於頁面底部則很煩人)。修改結果表使用AJAX
我發現了一個類似的例子,用鏈接實現AJAX - 這是我第一次使用AJAX--但是當用戶單擊鏈接時我沒有任何反應。
這裏是我的腳本:
function selectRecord() {
// Allocate an XMLHttpRequest object
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp=new XMLHttpRequest();
} else {
// IE6, IE5
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// Set up the readyState change event handler
xmlhttp.onreadystatechange = function() {
if ((this.readyState == 4) && (this.status == 200)) {
document.getElementById("selectRecord").innerHTML=xmlhttp.responseText;
}
}
// Open an asynchronous POST connection and send request
xmlhttp.open("POST", "selectRecord.php", true);
return false; // Do not follow hyperlink
}
,並在這裏與鏈接的表格單元格:
<td class="hidden-narrow" id="selectRecord">
<?php
if (in_array($bookID, $_SESSION['selectedBooks'])) {
echo "Selected";
} else {
echo '<a href="select" onclick="return selectRecord()" class="center">Select</a>';
}
?>
</td>
如果目前還不清楚結果,我追求的是一個鏈接(「選擇」)在表單元格中 - 當用戶單擊此鏈接時,它將執行selectRecord.php腳本,該腳本將回顯「選定」或出現錯誤時顯示錯誤消息。目前用戶點擊Select鏈接時沒有任何反應。
我還需要弄清楚如何將$ bookID PHP變量傳遞給AJAX腳本,以便selectRecord.php知道要將哪個Book ID添加到購物車。
這很好 - 我不得不在腳本中添加一行以處理我的服務器:xmlhttp.setRequestHeader(「Content-type」,「application/x-www-form-urlencoded」); – user982124