我们要实现如下图分页效果:
这个分页类是在thinkphp框架内置的分页类的基础上修改而来;
原分页类的一些设计,在实际运用中感觉不是很方便;
1、只有一页内容时不显示分页;
2、原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮;
3、分页数比较少时不显示首页和末页按钮;
4、包裹分页内容的父级p没有html' target='_blank'>class;
5、针对以上问题逐一进行了修改成如下;
6、如果没有数据不显示分页,如果有一页及以上内容即显示分页;
7、默认就显示第一页和最后一页按钮,但是在当前页是第一页和最后一页的时候按钮点击无效果;
8、默认就显示首页和末页按钮;
9、为包裹分页内容的父级p添加名为page的class;
显示总共查出的内容条数;
示例环境:thinkphp3.2.3;
分页类目录:/Thinkphp/Library/Org/Bjy/Page.class.php
分页类代码如下:
?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkVeVb.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 麦当苗儿 zuojiazi@vip.qq.com http://www.zjzit.cn // +---------------------------------------------------------------------- * PHP分页类 * 修改者:白俊遥 * 日 期:2015.5.10 * 邮 箱:baijunyao@baijunyao.com * 博 客:http://baijunyao.comnamespace Org/Bjy;class Page{ public $firstRow; // 起始行数 public $listRows; // 列表每页显示行数 public $parameter; // 分页跳转时要带的参数 public $totalRows; // 总行数 public $totalPages; // 分页总页面数 public $rollPage = 5;// 分页栏每页显示的页数 public $lastSuffix = true; // 最后一页是否显示总页数 private $p = p //分页参数名 private $url = //当前链接URL private $nowPage = 1; // 分页显示定制 private $config = array( header = span >分页类调用:
$count=$this- where($where)- count();$page=new /Org/Bjy/Page($count,$limit);$list=$this- where($where)- order( addtime desc )- limit($page- firstRow. , .$page- listRows)- select();$show=$page- show();分页类css
.b-page { background: #fff; box-shadow: 0px 1px 2px 0px #E2E2E2;.page { width: 100%; padding: 30px 15px; background: #FFF; text-align: center; overflow: hidden;.page .first,.page .prev,.page .current,.page .num,.page .current,.page .next,.page .end { padding: 8px 16px; margin: 0px 5px; display: inline-block; color: #008CBA; border: 1px solid #F2F2F2; border-radius: 5px;.page .first:hover,.page .prev:hover,.page .current:hover,.page .num:hover,.page .current:hover,.page .next:hover,.page .end:hover { text-decoration: none; background: #F8F5F5;.page .current { background-color: #008CBA; color: #FFF; border-radius: 5px; border: 1px solid #008CBA;.page .current:hover { text-decoration: none; background: #008CBA;.page .not-allowed { cursor: not-allowed;}分页类的使用方法和原thinkphp相同;具体参考:thinkphp手册-数据分页(http://document.thinkVeVb.com/manual_3_2.html#data_page)
以上就是thinkphp如何实现分页效果?分页类的编写与使用(代码示例)的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答