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相关资料
Oct 09 PHP
php获取地址栏信息的代码
Oct 08 PHP
PHP 裁剪图片成固定大小代码方法
Sep 09 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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 HTML代码串截取代码
2008/12/29 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
vue引入jq插件的实例讲解
2017/09/12 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
Python中tell()方法的使用详解
2015/05/24 Python
Python中http请求方法库汇总
2016/01/06 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
自我鉴定怎么写
2013/12/05 职场文书
优秀小学生家长评语
2014/01/30 职场文书
大学军训感言200字
2014/02/26 职场文书
七夕情人节促销方案
2014/06/07 职场文书
学校开除通知书
2015/04/25 职场文书