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 相关文章推荐
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
destoon实现资讯信息前面调用它所属分类的方法
Jul 15 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
PHP动态柱状图实现方法
Mar 30 PHP
PHP微信红包生成代码分享
Oct 06 PHP
Yii2选项卡的简单使用
May 26 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
禁止直接访问php文件代码分享
May 05 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
德生H-501的评价与改造
2021/03/02 无线电
PHP 表单提交给自己
2008/07/24 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
django框架两个使用模板实例
2019/12/11 Python
市场专员岗位职责
2014/02/14 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
经典祝酒词大全
2015/08/12 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis