表格的渲染在这里就省略了,主要说下最简单的分页方法要点
第一点: 开启分页
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;
特别提醒,代码仅供自己备忘的记录,需要的小伙伴不要照抄哦,代码只是参考,不用完全跟这写法一样!