当前位置: 首页 > news >正文

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

相关文章:

  • 【Python】从0开始写爬虫——转身扒豆瓣电影
  • C++ MFC Tab Control控件的详细使用
  • python分支结构(无switch结构)
  • shell脚本(三)
  • 2500元就可以做一个企业网站吗?网站建设价格多少合适?
  • svchost.exe占用CPU 100%的解决方法
  • 基于业务单元的开发与部署模式
  • good
  • Robot Framework之使用Cookie获取验证码登录账户
  • fopen 模拟 post 提交
  • 软件架构笔记 四
  • Cannot make a static reference to the non-static
  • git提交代码到远程仓库
  • 恢复显示“本地用户和组”和恢复显示“用户账户”
  • 封装和解构、集合、字典的简介
  • hexo+github搭建个人博客
  • FineReport中如何实现自动滚屏效果
  • Gradle 5.0 正式版发布
  • Laravel 中的一个后期静态绑定
  • leetcode46 Permutation 排列组合
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • php中curl和soap方式请求服务超时问题
  • select2 取值 遍历 设置默认值
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 从setTimeout-setInterval看JS线程
  • 警报:线上事故之CountDownLatch的威力
  • 十年未变!安全,谁之责?(下)
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 【干货分享】dos命令大全
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • # 飞书APP集成平台-数字化落地
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (2020)Java后端开发----(面试题和笔试题)
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core 中插件式开发实现
  • .NET多线程执行函数
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [2010-8-30]
  • [Android Pro] Notification的使用
  • [ASP]青辰网络考试管理系统NES X3.5
  • [C语言]编译和链接
  • [JavaEE系列] Thread类的基本用法