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+mysql一个名片库程序
Oct 09 PHP
php session应用实例 登录验证
Mar 16 PHP
PHP数组交集的优化代码分析
Mar 06 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
php 魔术方法详解
Nov 11 PHP
php中rename函数用法分析
Nov 15 PHP
PHP使用缓存即时输出内容(output buffering)的方法
Aug 03 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
php图片合成方法(多张图片合成一张)
Nov 25 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
php读取目录所有文件信息dir示例
2014/03/18 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
python实现稀疏矩阵示例代码
2017/06/09 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
Python模块文件结构代码详解
2018/02/03 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
出国考察邀请函
2014/01/21 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
防灾减灾活动总结
2014/08/30 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL