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如何透过ODBC来存取数据库
Oct 09 PHP
PHP+DBM的同学录程序(3)
Oct 09 PHP
文件上传程序的全部源码
Oct 09 PHP
php绝对路径与相对路径之间关系的的分析
Mar 03 PHP
PHP 文件上传全攻略
Apr 28 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 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
第七节--类的静态成员
2006/11/16 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
实例讲解php实现多线程
2019/01/27 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
详解JavaScript函数绑定
2013/08/18 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
7个JS基础知识总结
2014/03/05 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python工程师面试题 与Python Web相关
2016/01/14 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Django CBV类的用法详解
2019/07/26 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
DBA的职责都有哪些
2012/05/16 面试题
软件设计的目标是什么
2016/12/04 面试题
学前班评语大全
2014/05/04 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
2016年母亲节广告语
2016/01/28 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
python 破解加密zip文件的密码
2021/04/22 Python
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技