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 递归效率分析
Nov 24 PHP
PHP PDO函数库详解
Apr 27 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
PHP中isset()和unset()函数的用法小结
Mar 11 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
php检测数组长度函数sizeof与count用法
Nov 17 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 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获取网站域名和地址的代码
2008/08/17 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
php中and 和 &amp;&amp;出坑指南
2018/07/13 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
基于Python列表解析(列表推导式)
2018/06/23 Python
python3.6的venv模块使用详解
2018/08/01 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
python list转置和前后反转的例子
2019/08/26 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Python如何读写CSV文件
2020/08/13 Python
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
岗位明星事迹材料
2014/05/18 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
小学见习报告
2015/06/23 职场文书
安全教育培训制度
2015/08/06 职场文书
2016年寒假见闻
2015/10/10 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python