利用Layui数据表格自带的分页功能实现数据分页显示

    技术2024-07-15  85

    表格的渲染在这里就省略了,主要说下最简单的分页方法要点

    第一点: 开启分页page:true

    //js表格渲染代码,开启分页page:true table.render({ elem: '#demo' ,url: 'xxx.php' //数据接口 ,page: true //开启分页 //其他分页用到的参数按自已需求填写,例如下面这样 ,limits: [5,10, 20,50] ,limit: 10 //每页默认显示的数量 ,cols: [[ //表头 //.....省略一万行代码

    进行表格页面时,系统默认请求两个参数:page(当前所在的页)、limit(每页显示的数据记录的数量)。

    点击“上一页”或“下一页”或某一页时,也同样会请求默认的这两个参数,方式为:get。

    这两个参数也已经足够完成分页的功能了,因为layui内置的实现的逻辑,我们只需要想办法怎么去返回数据就行了。

    第二点:按格式要求返回请求数据

    附上返回的格式,后台处理的时候拼接就行了,最后echo 下面这个就能正常接收显示了

    { "code": 0, "msg": "", "count": 1000, "data": [{}, {}] }

    这里先捋一下:

    假设我们限制每页显示10条数据,也就是limit在第一页面的时候发送请求是:xxx/yyy/?page=1&limit=10

    点击第二页,自动发送请求:xxx/yyy/?page=2&limit=10

    点击第三页,自动发送请求:xxx/yyy/?page=3&limit=10

    以此类推…

    我们会发现,在请求某一页的数据时,默认传递的参数会自己变化,方便我们返回该页的数据。

    后台处理思路:

    1、查询数据库:SELECT *……,得到总记录数,赋值给count

    2、取出某一页的全部记录:赋值给data

    page=2&limit=20:sql的查询语句是:SELECT * FROM xxtable LIMIT 10,20";

    page=3&limit=30:sql的查询语句是:SELECT * FROM xxtable LIMIT 20,30";

    总结出某一页的查询语句为:SELECT * FROM xxtable LIMIT limit *(page-1) , limit;

    这样第二页的数据就查出来了,然后赋值给data就ok

    这样,

    //xxx.php页面,处理请求,这里只列出部分代码 //后台接收到page与limit参数 $page=isset($_GET[ 'page' ])?$_GET['page']:1; $limit=isset($_GET[ 'limit' ])?$_GET['limit']:10; $cur = (page-1)*limit; //两个查询语句 $sqlAll = "SELECT * FROM table"; $sqlCur = "SELECT * FROM table LIMIT $cur,$limit"; //获取总记录数(这里使用PDO与数据库交互的方法,用原生的也是一样的) $result = $PDO->query($sqlAll);//执行 SQL 语句,返回PDOStatement对象,可以理解为结果集 $rows = $result->fetchAll(PDO::FETCH_ASSOC);//返回一个包含结果集中所有行的数组 $count = count($rows);//使用count()方法取得总数 //最后搞到data就大功告成了 $resultCur = $PDO->query($sqlCur); $rowsCur = $result->fetchAll(PDO::FETCH_ASSOC);//数据部分就是这个啦,只不过要转换成json //就是下面这样子处理 $json_rowsCur = json_encode($rowsCur); //最最最后,拼接返回数据data $data = "{ "code": 0, "msg": "", "count": $count, "data": $json_rowsCur }"; //还有呢 echo $data;

    特别提醒,代码仅供自己备忘的记录,需要的小伙伴不要照抄哦,代码只是参考,不用完全跟这写法一样!

    Processed: 0.008, SQL: 9