我正在使用XMLHttpRequest从mySQL数据库中检索更多帖子以在页面上显示。 它第一次正常工作,但第二次和之后,它不知道要获得哪些帖子,所以它会一次又一次地继续获得第二次。 触发发送请求的不是具有特定ID的按钮。它是在页面末端加载更多数据。 这是Requesting XMLdata的代码:
if (window.XMLHttpRequest)
{ xmlhttp=new XMLHttpRequest(); }
else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
wrap.innerHTML += xmlhttp.responseText; }
}
xmlhttp.open("GET","getposts.php?q="+nextId);
xmlhttp.send();
以下是在页面末尾加载更多数据的代码:
function yHandler(){
var wrap = document.getElementById('wrap');
var contentHeight = wrap.offsetHeight;
var yOffset = window.pageYOffset;
var y = yOffset + window.innerHeight;
if(y >= contentHeight)
{
//--- Requsting XMLdata goes here ---
}
var status = document.getElementById('status');
status.innerHTML = contentHeight+" | "+y;
}
window.onscroll = yHandler;
我曾尝试使用$ _SESSION来节省用户请求帖子的时间,所以我每次都可以添加+1,但价值会像疯了一样增加。首先它是0然后是4,第三次是9或类似的东西。 以下是我在HTML标记之前的第一个使用SESSION的方法:
session_start();
if(isset($_SESSION['ordning']))
{
$_SESSION['ordning'] = $_SESSION['ordning'] + 1 ;
}
else
{
$_SESSION['ordning']=0;
}
有人知道这样做的方法吗?我被卡住了......我 非常感谢您的帮助!
答案 0 :(得分:0)
如果nextId
是您要从XHR检索的第一篇帖子的引用,则每次请求新帖子时都需要增加它,可以在发送请求时按设定金额增加,也可以基于您从服务器获得的回复数量。
如果不是,您应该向您从服务器请求的网址添加另一个参数,例如'&postIndex='+postIndex
,并按照您获得的回复数量增加pageIndex
每次都是服务器,如上所述。
在服务器端,只需从pageIndex
中收到的数据启动SQL查询。