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下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
一篇有意思的技术文章php介绍篇
Oct 26 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
用php简单实现加减乘除计算器
Jan 06 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
PHP多进程编程实例
Oct 15 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
用PHP代码给图片加水印
Jul 01 PHP
深入浅析用PHP实现MVC
Mar 02 PHP
搜索附近的人PHP实现代码
Feb 11 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
WINXP下apache+php4+mysql
2006/11/25 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
php的扩展写法总结
2019/05/14 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
asm.js使用示例代码
2013/11/28 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
django Serializer序列化使用方法详解
2018/10/16 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
python 图像平移和旋转的实例
2019/01/10 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
校长岗位职责
2013/11/26 职场文书
投标单位介绍信
2014/01/09 职场文书
《菜园里》教学反思
2014/04/17 职场文书
岗位职责说明书
2014/05/07 职场文书
迎新生晚会主持词
2015/06/30 职场文书
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python