ThinkPHP 3.2 数据分页代码分享


Posted in PHP onOctober 14, 2014

TP3.2框架手册,有一个数据分页,不过每次都要写太多的代码,还有中文设置等有些麻烦,做为程序开发者,有必要整理下:

O、先看效果图

ThinkPHP 3.2 数据分页代码分享

一、分页方法

/**

 * 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 !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
php获取文件大小的方法
Feb 26 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
Jan 26 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
php实现字符串翻转的方法
Mar 27 PHP
php 多文件上传的实现实例
Oct 23 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
Oct 20 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 #PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 #PHP
PHP+jQuery 注册模块开发详解
Oct 14 #PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 #PHP
php中动态修改ini配置
Oct 14 #PHP
php中的ini配置原理详解
Oct 14 #PHP
9段PHP实用功能的代码推荐
Oct 14 #PHP
You might like
《心理测量者3》剧场版动画预告
2020/03/02 日漫
提问的智慧(2)
2006/10/09 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python中的Numpy矩阵操作
2018/08/12 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
财务主管的岗位职责
2013/12/30 职场文书
国贸专业求职信
2014/06/28 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
文明班级申报材料
2014/12/24 职场文书
基层党支部承诺书
2015/04/30 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
javascript对象3个属性特征
2021/11/17 Javascript
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL