//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;