进行表格页面时,系统默认请求两个参数: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;