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程序中的常见漏洞进行攻击
Oct 09 PHP
实现“上一页”和“下一页按钮
Oct 09 PHP
一个简单的PHP入门源程序
Oct 09 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
使用php实现从身份证中提取生日
May 09 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
Nov 14 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
PHP的mysqli_ssl_set()函数讲解
Jan 23 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中apc缓存使用示例
2013/12/25 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
javascript时区函数介绍
2012/09/14 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
分分钟入门python语言
2018/03/20 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
python集合常见运算案例解析
2019/10/17 Python
python爬取代理ip的示例
2020/12/18 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
留学推荐信范文
2014/05/10 职场文书
党性分析材料格式
2014/12/19 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android