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新手谈谈我的学习心得
Feb 25 PHP
在PHP中使用Sockets 从Usenet中获取文件
Jan 10 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
分享PHP header函数使用教程
Sep 05 PHP
PHP扩展CURL的用法详解
Jun 20 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
Dec 18 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
PHP图片水印类的封装
Jul 06 PHP
PHP下用Swoole实现Actor并发模型的方法
Jun 12 PHP
phpinfo的知识点总结
Oct 10 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无限分类(树形类)
2013/09/28 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
javascript 写类方式之六
2009/07/05 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
python交互界面的退出方法
2019/02/16 Python
Python 元组操作总结
2019/09/18 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
python 装饰器重要在哪
2021/02/14 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
电脑教师的教学自我评价
2013/11/26 职场文书
小学教师事迹材料
2014/01/13 职场文书
销售助理岗位职责
2014/02/21 职场文书
动物科学专业求职信
2014/07/27 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS