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

  • Post author:
  • Post category:其他




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



第一点: 开启分页

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;



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

在这里插入图片描述



版权声明:本文为m0_48040841原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。