Ajax分页问题

 Ajax是大多数人在数据交互时都要用到的方法,当你从后台获取数据,如果这个数据比较庞大,那么分页问题就是必不可少的了。现在有个相对容易的方法(该方法基于jQuery),可以分享给大家 。

    首先封装一个函数:

function queryByPage(con,curpage,eachpage,sql,param,func){

//这里con是指后台数据库的链接接口;curpage、eachpage是从你要查的第几条到第几条;sql是查询语句;param是参数,没有可以不写;func是回调函数。

    if(!curpage || curpage <= 0){

        curpage = 1;

    }

    if(!func){

        func = param;

        param = [];

    }

    con.query("select count(*) cnt from ("+sql+") t",param,function(e,r,f){

        //获取总数量

        var count = r[0].cnt;

        //获取总页码

        var maxpage = Math.ceil(count/eachpage);

// maxpage最大页数;count数据的总数;eachpage每页获取的数据数;Math.ceil取整+1(不管你的余数是大于5还是小于5,Math.ceil都会在取整的基础上+1)

        sql += " limit "+((curpage-1)*eachpage)+","+eachpage;

        var inner_con = getConAPI();

        inner_con.query(sql,param,function(e,r,f){

 

 

var page = {"curpage":curpage,"maxpage":maxpage,"eachpage":eachpage};            func(e,r,f,page);

        });

        inner_con.end();

    });}

exports.getCon = getConAPI;

exports.queryByPage = queryByPage;

    封装了以上代码,在获取数据时我们只需调用就行了,比如:

exports.validatetable = function(req,resp){

    var con = mysql.getCon();

var curpage = req.query.curpage;

//这里是查询总数据的1到5条

    mysql.queryByPage(con,curpage,5,"select * from t_user",function(e,d,f,page){

        if(e){

            console.log(e);

        }else{

//返回所有值和页数

            resp.json({"data":d,"page":page});

        }

    });

    con.end();

};

接收时只需生成分页标签就行了

var cur = parseInt(d.page.curpage);

//cur是页数;funLoad是数据加载时的函数,每次点击都需刷新;

            var pageStr = "";

            if(cur > 1){

                pageStr += "<a οnclick='funLoad("+ (cur-1) +")'>上一页</a>";

            }

            for(var i = 1;i <= d.page.maxpage;i++){

                pageStr += "<a οnclick='funLoad("+i+")'>"+i+"</a>";

            }

            if(cur < d.page.maxpage){

 

                pageStr += "<a οnclick='funLoad("+(cur+1)+")'>下一页</a>";

            }

            $("#page").html(pageStr);

转载于:https://www.cnblogs.com/wsy19940622/p/4556603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值