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获取金书网的书名的实现代码
Jun 11 PHP
php中http_build_query 的一个问题
Mar 25 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
php伪静态之APACHE篇
Jun 02 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
PHP正则表达式匹配替换与分割功能实例浅析
Feb 04 PHP
php微信公众号开发之简答题
Oct 20 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 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
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
javascript截取字符串小结
2015/04/28 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
python中的对数log函数表示及用法
2020/12/09 Python
素食餐饮项目创业计划书
2014/02/02 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
基层党员对照检查材料
2014/09/24 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
诚信高考倡议书
2019/06/24 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书