thinkphp分页实现效果


Posted in PHP onOctober 13, 2016

对于thinkphp分页的实现效果,一共分为两种一种是一种调用公共函数中的函数方法,而另一种是模型中书写分页的方法,下面就给需要的朋友来整理一下。

一、分页方法

/**
 * TODO 基础分页的相同代码封装,使前台的代码更少
 * @param $m 模型,引用传递
 * @param $where 查询条件
 * @param int $pagesize 每页查询条数
 * @return \Think\Page
 */
function getpage(&$m,$where,$pagesize=10){
 $m1=clone $m;//浅复制一个模型
 $count = $m->where($where)->count();//连惯操作后会对join等操作进行重置
 $m=$m1;//为保持在为定的连惯操作,浅复制一个模型
 $p=new Think\Page($count,$pagesize);
 $p->lastSuffix=false;
 $p->setConfig('header','<li class="rows">共<b>%TOTAL_ROW%</b>条记录  每页<b>%LIST_ROW%</b>条  第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
 $p->setConfig('prev','上一页');
 $p->setConfig('next','下一页');
 $p->setConfig('last','末页');
 $p->setConfig('first','首页');
 $p->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');

 $p->parameter=I('get.');

 $m->limit($p->firstRow,$p->listRows);

 return $p;
}

getpage方法可以放在TP框架的 Application/Common/Common/function.php,这个文档可以专门放置一些通用的方法,在哪里都可以调用(如:Controller文件,View文件等)。

二、调用分页方法

$m=M('products');
$p=getpage($m,$where,10);
$list=$m->field(true)->where($where)->order('id desc')->select();
$this->list=$list;
$this->page=$p->show();

再是View代码

<div class="pagination">
{$page}
</div>

三、最后就是分页的样式了,这个有些乱,因后台框架网上下载的,样式还没来的及整理,这个样式也可以自己实现,简单的。

.pagination ul {
 display: inline-block;
 margin-bottom: 0;
 margin-left: 0;
 -webkit-border-radius: 3px;
 -moz-border-radius: 3px;
 border-radius: 3px;
 -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
 -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
 box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.pagination ul li {
 display: inline;
}

.pagination ul li.rows {
 line-height: 30px;
 padding-left: 5px;
}
.pagination ul li.rows b{color: #f00}

.pagination ul li a, .pagination ul li span {
 float: left;
 padding: 4px 12px;
 line-height: 20px;
 text-decoration: none;
 background-color: #fff;
 background: url('../images/bottom_bg.png') 0px 0px;
 border: 1px solid #d3dbde;
 /*border-left-width: 0;*/
 margin-left: 2px;
 color: #08c;
}
.pagination ul li a:hover{
 color: red;
 background: #0088cc;
}
.pagination ul li.first-child a, .pagination ul li.first-child span {
 border-left-width: 1px;
 -webkit-border-bottom-left-radius: 3px;
 border-bottom-left-radius: 3px;
 -webkit-border-top-left-radius: 3px;
 border-top-left-radius: 3px;
 -moz-border-radius-bottomleft: 3px;
 -moz-border-radius-topleft: 3px;
}
.pagination ul .disabled span, .pagination ul .disabled a, .pagination ul .disabled a:hover {
color: #999;
cursor: default;
background-color: transparent;
}
.pagination ul .active a, .pagination ul .active span {
color: #999;
cursor: default;
}
.pagination ul li a:hover, .pagination ul .active a, .pagination ul .active span {
background-color: #f0c040;
}
.pagination ul li.last-child a, .pagination ul li.last-child span {
 -webkit-border-top-right-radius: 3px;
 border-top-right-radius: 3px;
 -webkit-border-bottom-right-radius: 3px;
 border-bottom-right-radius: 3px;
 -moz-border-radius-topright: 3px;
 -moz-border-radius-bottomright: 3px;
}

.pagination ul li.current a{color: #f00 ;font-weight: bold; background: #ddd}
PHP 相关文章推荐
PHP缓存技术的多种方法小结
Aug 14 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
php构造函数的继承方法
Feb 09 PHP
ThinkPHP模型详解
Jul 27 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
Jun 06 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
PHP高效获取远程图片尺寸和大小的实现方法
Oct 20 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
php实现图片以base64显示的方法
Oct 13 #PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 #PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 #PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 #PHP
php结合ajax实现手机发红包的案例
Oct 13 #PHP
php加密解密字符串示例
Oct 13 #PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 #PHP
You might like
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
Python实现全局变量的两个解决方法
2014/07/03 Python
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
Python脚本实现网卡流量监控
2015/02/14 Python
Python生成随机数组的方法小结
2017/04/15 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
利用python实现AR教程
2019/11/20 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
Django自带的用户验证系统实现
2020/12/18 Python
python 装饰器的基本使用
2021/01/13 Python
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
婚前协议书
2014/04/15 职场文书
捐款活动总结
2014/08/27 职场文书
节能环保演讲稿
2014/08/28 职场文书
实习协议书范本
2014/09/25 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书