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 实例化类的一点摘记
Mar 23 PHP
PHP cron中的批处理
Sep 16 PHP
PHP 引用文件技巧
Mar 02 PHP
PHP PDO函数库详解
Apr 27 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
PHP静态调用非静态方法的应用分析
May 02 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
php实现图片上传、剪切功能
May 07 PHP
实例讲解PHP表单验证功能
Feb 15 PHP
PHP token验证生成原理实例分析
Jun 05 PHP
php命令行模式代码实例详解
Feb 26 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/03/22 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
Python多线程编程简单介绍
2015/04/13 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
python监控文件并且发送告警邮件
2018/06/21 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
python实现代码统计器
2019/09/19 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
《小动物过冬》教学反思
2014/04/17 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android