现在我有一个网站,它使用PHP从大型SQL数据库生成一个表。
我想在我的网站上添加两个按钮,它们将使用AJAX用新数据更新表格。表都是索引的,所以我只需要能够通过XMLHttpRequest提交一个"偏移量"变量来获得新数据。我的代码是:
xmlhttp.open("GET","schedule_top.php?q="+offset, true);
xmlhttp.send();
现在,我的"下一个"按钮将给出3的偏移量,而我的"上一个"按键将给出-3的偏移量。我遇到的问题是,如果用户想多次单击任一按钮。由于每次函数调用时偏移量都设置为0,因此我不能循环超过-3和3。
我该怎么办?我当前的AJAX代码如下:
function loadXMLDoc(int) {
var xmlhttp;
var offset = 0;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('tobooth').innerHTML = xmlhttp.responseText;
}
}
if (int == 1) {
offset -= 3;
} else {
offset +=3;
}
xmlhttp.open("GET","schedule_top.php?q="+offset, true);
xmlhttp.send();
}
我不会直接回答你的问题,但我可以建议另一种方法。
您可以创建包含新偏移量的简单字段。或者您可以将偏移量直接存储在元素next
和prev
上,例如
<a href='#' id='0' class='goPrev'>Previous</a>
和
<a href='#' id='3' class='goNext'>Next</a>
默认偏移量为零。对于下一个按钮,偏移量将为3,对于上一个null(用户不能点击上一个按钮)。
当用户单击next
按钮时,您将执行ajax请求并更新这两个字段。goNext字段的偏移量为6,而previous字段的偏移值为0。
当用户再次单击next
按钮时,您将再次执行ajax请求并再次更新这两个字段。goNext字段的偏移量为9,而previous字段的偏移值为3。
Etc等
此外,您还可以将数据存储在隐藏输入中。
希望,这会有所帮助。