将唯一ID传递给AJAX脚本


Passing Unique ID to AJAX Script

我正在用一些PHP页面编写我的第一个AJAX脚本——这是我第一次使用AJAX,我终于可以使用该脚本了。我也是一个Javascript新手。

我有一个PHP网站,允许用户搜索图书馆目录,然后选择/添加书籍到购物车。我们现在已经将"选择"链接更改为通过AJAX加载,这样搜索结果页面就不会刷新。

为了完成AJAX更改,我现在需要为每个具有指向脚本的AJAX链接的表单元格传递一个唯一的ID。我使用PHP通过使用$bookID变量为每个表单元格生成一个唯一的ID,如下所示:

<td class="hidden-narrow" id="<?php echo 'selectRecord'.$bookID; ?>">
<?php
if (in_array($bookID, $_SESSION['selectedBooks'])) {
echo "Selected";
} else {
echo '<a href="select" onclick="return selectRecord('.$bookID.')" class="center">Select</a>';
}
?>
</td>

我现在需要更新我的脚本以使用唯一的ID——为了让它发挥作用,我使用我找到的一个示例脚本将其硬编码为一个名为"selectRecord"的ID。这是我的脚本:

function selectRecord(id) {
// 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="Selected";
}
}
// Open an asynchronous POST connection and send request
xmlhttp.open("POST", "selectRecord.php", true);
xmlhttp.send("id="+id);
return false;  // Do not follow hyperlink

我想我需要更改这条线:

document.getElementById("selectRecord").innerHTML="Selected";

但不确定处理每个表行单元格的唯一ID的语法。

您可以将id传递给getElementById函数:

document.getElementById("selectRecord" + id).innerHTML="Selected";

你试过吗

document.getElementById(id).innerHTML="Selected";

id应该被readystate函数包围并保持其值。