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 相关文章推荐
我的论坛源代码(二)
Oct 09 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
smarty模板数学运算示例
Dec 11 PHP
php生成网页桌面快捷方式
May 05 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
php中pcntl_fork详解
Apr 01 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
PHP 快速排序算法详解
2014/11/10 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中的异常处理简明介绍
2015/04/13 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
python中sys.argv函数精简概括
2018/07/08 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
小学生作文评语
2014/04/18 职场文书
运动会方队口号
2014/06/07 职场文书
财务会计专业求职信
2014/06/09 职场文书
学生评语集锦
2015/01/04 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python