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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
php Ajax乱码
Apr 09 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
Jun 21 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
Jul 08 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
php扩展开发入门demo示例
Sep 23 PHP
tp5框架无刷新分页实现方法分析
Sep 26 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php面向对象 字段的声明与使用
2012/06/14 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
python读取文件名称生成list的方法
2018/04/27 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
shell程序中如何注释
2012/02/17 面试题
接受捐赠答谢词
2014/01/27 职场文书
安全员岗位职责
2015/02/10 职场文书
员工表扬信怎么写
2015/05/05 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书