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 25 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
php递归遍历删除文件的方法
Apr 17 PHP
php编程每天必学之验证码
Mar 03 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 PHP
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
Mar 14 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 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 冒泡排序 交换排序法
2011/05/10 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
php去除数组中重复数据
2014/11/18 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
python网络编程实例简析
2014/09/26 Python
python统计cpu利用率的方法
2015/06/02 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
java判断三位数的实例讲解
2019/06/10 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
Python文件路径名的操作方法
2019/10/30 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
施工员岗位职责
2014/03/16 职场文书
端午节演讲稿
2014/05/23 职场文书
驾驶员安全责任书
2014/07/22 职场文书
毕业生找工作求职信
2014/08/05 职场文书
小学教师岗位职责
2015/04/02 职场文书
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技