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下MYSQL limit的优化
Jan 10 PHP
PHP源码之 ext/mysql扩展部分
Jul 17 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
解析crontab php自动运行的方法
Jun 24 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
PHP目录操作实例总结
Sep 27 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
详解php中curl返回false的解决办法
Mar 18 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实现 上一篇、下一篇的代码
2012/09/29 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
JavaScript多线程详解
2015/08/12 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python制作简易注册登录系统
2016/12/15 Python
Python File readlines() 使用方法
2018/03/19 Python
django中静态文件配置static的方法
2018/05/20 Python
Python logging模块用法示例
2018/08/28 Python
Django中的ajax请求
2018/10/19 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
HTML5进度条特效
2014/12/18 HTML / CSS
工程管理专业个人求职信范文
2013/12/07 职场文书
十一酒店活动方案
2014/02/20 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
教师自我鉴定范文
2014/03/20 职场文书
学生期末评语大全
2014/04/30 职场文书
采购部年度工作总结
2015/08/13 职场文书
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技