1

我正在使用一些 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 的语法。

4

2 回答 2

1

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

document.getElementById("selectRecord" + id).innerHTML="Selected";
于 2013-08-01T16:18:56.613 回答
0

你有没有尝试过

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

? id应该被 readystate 函数包围并保持它的值。

于 2013-08-01T15:56:12.227 回答