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 相关文章推荐
分页显示Oracle数据库记录的类之一
Oct 09 PHP
用PHP实现将GB编码转换为UTF8
Nov 25 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
php提交表单发送邮件的方法
Mar 20 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
php无限级分类实现方法分析
Oct 19 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 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中日期加减法运算实现代码
2011/12/08 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
php如何获取Http请求
2020/04/30 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
React中的refs的使用教程
2018/02/13 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
js实现金山打字通小游戏
2020/07/24 Javascript
详细解读Python中的__init__()方法
2015/05/02 Python
python脚本监控docker容器
2016/04/27 Python
Python元字符的用法实例解析
2018/01/17 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
修理厂厂长岗位职责
2014/01/30 职场文书
节水口号标语
2014/06/19 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
员工给公司的建议书
2019/06/24 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python