我正在使用一些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的语法。
答案 0 :(得分:1)
您可以将id传递给getElementById函数:
document.getElementById("selectRecord" + id).innerHTML="Selected";
答案 1 :(得分:0)
你试过吗
document.getElementById(id).innerHTML="Selected";
? id
应该被readystate函数括起来并保持其值。