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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
PHP简单系统查询模块代码打包下载
Jun 07 PHP
php 变量定义方法
Jun 14 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
解读PHP中上传文件的处理问题
May 29 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
js实现中文实时时钟
2020/01/15 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
python使用Tesseract库识别验证
2018/03/21 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
Python imread、newaxis用法详解
2019/11/04 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
python异常处理和日志处理方式
2019/12/24 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
金融专业个人求职信
2013/09/22 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
竞选班委演讲稿
2014/04/28 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏