ThinkPHP分页实例


Posted in PHP onOctober 15, 2014

本文实例讲述了ThinkPHP分页的实现方法,分享给大家供大家参考。具体方法如下:

在TP3.2框架手册中有一个数据分页,不过每次都要写太多的代码,还有中文设置等有些麻烦,做为程序开发者,有必要整理下:

实例运行效果如下图所示:

ThinkPHP分页实例

一、分页方法:

/**

 * 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}

希望本文所述对大家的ThinkPHP框架程序开发有所帮助。

PHP 相关文章推荐
php面向对象全攻略 (十七) 自动加载类
Sep 30 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
ThinkPHP控制器间实现相互调用的方法
Oct 31 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
基于PHP如何把汉字转化为拼音
Dec 11 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
php正则表达式使用方法整理集合
Jan 31 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 #PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 #PHP
PHP实现文件下载断点续传详解
Oct 15 #PHP
PHP多进程编程实例
Oct 15 #PHP
PHP实现采集中国天气网未来7天天气
Oct 15 #PHP
跟我学Laravel之视图 &amp; Response
Oct 15 #PHP
跟我学Laravel之请求与输入
Oct 15 #PHP
You might like
PHP人民币金额转大写实例代码
2015/10/02 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
JavaScript 学习历程和心得分享
2010/12/12 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
django解决跨域请求的问题
2018/11/11 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
python构造IP报文实例
2020/05/05 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
柏林通行证:Berlin Pass
2018/04/11 全球购物
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
最新党员思想汇报
2014/01/01 职场文书
公司离职证明标准范本
2014/10/05 职场文书
国庆横幅标语
2014/10/08 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技