请问Ajax 分页的问题 按你的思路每次从前台传两个参数就可以了,一个是start,一个是limit.start表示从第几条数据开始查询,limit表示每次列出多少条数据.你在page_class.php中接受到这两个参数再去db中查询就可以了.其实别的ajax框架也是这么做的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己写了一个,看是否能帮你分页的:function createNavigation(totalrec,totalpage,curpage,perpage,callback){ totalpage = parseInt(totalpage); curpage = parseInt(curpage); perpage = parseInt(perpage); var nvstr = "<ul class='pagenav'><li class='totalrec'>"+totalrec+"</li><li class='pagetip'>"+curpage+"/"+totalpage+"</li>"; if(totalpage <= perpage){ for(var i = 1; i < totalpage + 1 ; i++){ var cls = curpage == i ? "curpage":"nocurpage"; var clk = curpage == i ? "" : "onclick='eval("+callback+"("+i+"))'"; nvstr += "<li class='"+cls+"' "+clk+">" + i + "</li>"; } } if(totalpage > perpage){ var startpage = (Math.ceil(curpage / 10) - 1) * 10; var endpage = startpage + 10 > totalpage ? totalpage : startpage + 10; if(curpage > perpage){ nvstr += "<li class='nocurpage' onclick='eval("+callback+"(1))'>|<</li>"; nvstr += "<li class='nocurpage' onclick='eval("+callback+"("+(curpage - 1)+"))'><<</li>"; } for(var i = startpage + 1 ; i < endpage + 1 ; i ++ ){ var cls = curpage == i ? "curpage":"nocurpage"; var clk = curpage == i ? "" : "onclick='eval("+callback+"("+i+"))'"; nvstr += "<li class='"+cls+"' "+clk+">" + i + "</li>"; } if(curpage <= totalpage&&totalpage > endpage){ nvstr += "<li class='nocurpage' onclick='eval("+callback+"("+(curpage + 1)+"))'>>></li>"; nvstr += "<li class='nocurpage' onclick='eval("+callback+"("+totalpage+"))'>>|</li>"; } } nvstr += "</ul>"; return nvstr;}取数据的://用prototype的ajax类,也可以自己写function getquestion(curpage){ var url = '../post.php'; var pars = 'mod=person&action=question&userid='+userid+'&curpage='+curpage+'&time='+Math.random(); //$("error").innerHTML = pars; try{ var update = new Ajax.Updater("rs", url, { method : 'post', parameters : pars, onComplete: displayquestion } ) }catch(e){$("error").innerHTML = "13002";}}显示数据:function displayquestion(rs){ var result = rs.responseXML; var curpage = getValue(result,'curpage'); var limit = getValue(result,'limit'); var totalpage = getValue(result,'totalpage'); var totalrec = getValue(result,'totalrec'); var questions = getValues(result,'question'); var str = "<ul>"; str += "<li class='qid'><b>编号</b></li>"; str += "<li class='title'><b>问题</b></li>"; str += "<li class='contents'><b>回答</b></li>"; str += "</ul><hr class='clear'>"; for(var i=0;i<questions.length;i++) { var qst = questions[i]; var title = getValue(qst,'title'); var contents = getValue(qst,'contents'); var _contents = getValue(qst,'_contents'); str += "<ul>"; str += "<li class='qid'>"+(i+1)+"</li>"; str += "<li class='title'>"+title+"</li>"; str += "<li class='contents'><a href=\"JavaScript:;\" onclick=\"insertanswer('"+contents+"','"+userid+"')\" title='"+contents+"'>"+_contents+"</a></li>"; str += "</ul><hr class='clear'>"; } str += createNavigation(totalrec,totalpage,curpage,10,callback);//这里调用分页函数 $('question').innerHTML = str;//写入页面}function callback(pg){//可以通过全局变量传多个参数 getquestion(pg);}getquestion(1); 最近我也照着网上的一些写法写了个类似的东西从服务器传到页面就有要显示的数据data,是个数组,每个元素都是json对象[{},{},{}]还要传回来分页的基本信息,如共有多少条记录,当前页首条数据是结果集的第几条记录,每页最大数据是多少条其他关于分页的数据都是在客户端计算完成的翻页的时候就计算一下,然后将信息发送给服务器 1,我有一个page_class.php(PHP分页类),那是不是应该当用户点击一个分页数字时,我要进行两个异步 第一个异步:评论内容查询 第二个异步:重新生成列表分页(注:利用page_class.php在服务器段生成分页列表号,然后返回) 这两个异步是单独的这样合理吗 for循环取i的问题 关于Javascript解析XML问题 求個正則表達式! 鼠标拖动DIV层的移动范围 请教几个js概念性问题 表格单元中随机背景图片 关于按钮是图片的问题和select的问题 怎样获得一个dhtml的对象的相对于屏幕坐标 javascript的安全性限制害死人,我的这个实现报安全性错误,大家看看可还有法子解决啊? 怎么判断单选按钮是否选择了 JS控制事件问题 正则表达式提取html内容
分页的:
function createNavigation(totalrec,totalpage,curpage,perpage,callback){
totalpage = parseInt(totalpage);
curpage = parseInt(curpage);
perpage = parseInt(perpage); var nvstr = "<ul class='pagenav'><li class='totalrec'>"+totalrec+"</li><li class='pagetip'>"+curpage+"/"+totalpage+"</li>";
if(totalpage <= perpage){
for(var i = 1; i < totalpage + 1 ; i++){
var cls = curpage == i ? "curpage":"nocurpage";
var clk = curpage == i ? "" : "onclick='eval("+callback+"("+i+"))'";
nvstr += "<li class='"+cls+"' "+clk+">" + i + "</li>";
}
}
if(totalpage > perpage){
var startpage = (Math.ceil(curpage / 10) - 1) * 10;
var endpage = startpage + 10 > totalpage ? totalpage : startpage + 10;
if(curpage > perpage){
nvstr += "<li class='nocurpage' onclick='eval("+callback+"(1))'>|<</li>";
nvstr += "<li class='nocurpage' onclick='eval("+callback+"("+(curpage - 1)+"))'><<</li>";
} for(var i = startpage + 1 ; i < endpage + 1 ; i ++ ){
var cls = curpage == i ? "curpage":"nocurpage";
var clk = curpage == i ? "" : "onclick='eval("+callback+"("+i+"))'";
nvstr += "<li class='"+cls+"' "+clk+">" + i + "</li>";
}
if(curpage <= totalpage&&totalpage > endpage){
nvstr += "<li class='nocurpage' onclick='eval("+callback+"("+(curpage + 1)+"))'>>></li>";
nvstr += "<li class='nocurpage' onclick='eval("+callback+"("+totalpage+"))'>>|</li>";
}
}
nvstr += "</ul>";
return nvstr;
}取数据的://用prototype的ajax类,也可以自己写
function getquestion(curpage){
var url = '../post.php';
var pars = 'mod=person&action=question&userid='+userid+'&curpage='+curpage+'&time='+Math.random();
//$("error").innerHTML = pars;
try{
var update = new Ajax.Updater("rs",
url,
{
method : 'post',
parameters : pars,
onComplete: displayquestion
}
)
}catch(e){$("error").innerHTML = "13002";}
}显示数据:
function displayquestion(rs){
var result = rs.responseXML;
var curpage = getValue(result,'curpage');
var limit = getValue(result,'limit');
var totalpage = getValue(result,'totalpage');
var totalrec = getValue(result,'totalrec');
var questions = getValues(result,'question');
var str = "<ul>";
str += "<li class='qid'><b>编号</b></li>";
str += "<li class='title'><b>问题</b></li>";
str += "<li class='contents'><b>回答</b></li>";
str += "</ul><hr class='clear'>";
for(var i=0;i<questions.length;i++)
{
var qst = questions[i];
var title = getValue(qst,'title');
var contents = getValue(qst,'contents');
var _contents = getValue(qst,'_contents');
str += "<ul>";
str += "<li class='qid'>"+(i+1)+"</li>";
str += "<li class='title'>"+title+"</li>";
str += "<li class='contents'><a href=\"JavaScript:;\" onclick=\"insertanswer('"+contents+"','"+userid+"')\" title='"+contents+"'>"+_contents+"</a></li>";
str += "</ul><hr class='clear'>";
}
str += createNavigation(totalrec,totalpage,curpage,10,callback);//这里调用分页函数
$('question').innerHTML = str;//写入页面
}function callback(pg){//可以通过全局变量传多个参数
getquestion(pg);
}
getquestion(1);
第一个异步:评论内容查询
第二个异步:重新生成列表分页(注:利用page_class.php在服务器段生成分页列表号,然后返回)
这两个异步是单独的
这样合理吗