请问Ajax 分页的问题

aessjz 2009-03-18 12:09:34
我的思路:
1,异步查询得到评论HTML代码(不包括评论分页,仅是评论内容的HTML代码)并将得到的HTML代码插入到
2,更新分页列表

问题:
第1部好实现,问题是第2步
1,我有一个page_class.php(PHP分页类),那是不是应该当用户点击一个分页数字时,我要进行两个异步 
   评论内容查询
   重新生成列表分页(利用page_class.php)
还是说用一个ajax的分页函数/类完成分页列表的更新,不过在我看来都是一样的,因为反正要查询分页列表都要通过异步的数据库操作,所以我觉得用page_class.php就可以,然后再把列表显示到分页DIV中,$("#page_list").html(data);
2,如果我上面的思想没有错,但是我想用ajax的分页类,请帮忙提供一个,谢谢了

...全文
320 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lucane 2009-03-18
  • 打赏
  • 举报
回复
最近我也照着网上的一些写法写了个类似的东西

从服务器传到页面就有要显示的数据data,是个数组,每个元素都是json对象[{},{},{}]

还要传回来分页的基本信息,如共有多少条记录,当前页首条数据是结果集的第几条记录,每页最大数据是多少条

其他关于分页的数据都是在客户端计算完成的

翻页的时候就计算一下,然后将信息发送给服务器。。。
itian 2009-03-18
  • 打赏
  • 举报
回复
自己写了一个,看是否能帮你


分页的:
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);
mumu_java 2009-03-18
  • 打赏
  • 举报
回复
按你的思路每次从前台传两个参数就可以了,一个是start,一个是limit.start表示从第几条数据开始查询,limit表示每次列出多少条数据.你在page_class.php中接受到这两个参数再去db中查询就可以了.其实别的ajax框架也是这么做的.
aessjz 2009-03-18
  • 打赏
  • 举报
回复
1,我有一个page_class.php(PHP分页类),那是不是应该当用户点击一个分页数字时,我要进行两个异步 
   第一个异步:评论内容查询
   第二个异步:重新生成列表分页(注:利用page_class.php在服务器段生成分页列表号,然后返回)
这两个异步是单独的
这样合理吗
wclszh 2009-03-18
  • 打赏
  • 举报
回复
ajax的分页类,没有用过
lotusprince 2009-03-18
  • 打赏
  • 举报
回复

要实现分页, 就是在取数据的时候 多带一个参数了,其它的放到服务器端去处理就行了!

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧