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 相关文章推荐
实现树状结构的两种方法
Oct 09 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
PHPThumb图片处理实例
May 03 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
ThinkPHP实现递归无级分类――代码少
Jul 29 PHP
twig模板获取全局变量的方法
Feb 05 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
PHP Ajax实现无刷新附件上传
Aug 17 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
基于php双引号中访问数组元素报错的解决方法
Feb 01 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
在网页里看flash的trace数据的js类
2009/01/10 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
jquery获取radio值实例
2014/10/16 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
关于python中remove的一些坑小结
2021/01/04 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
年度考核自我鉴定
2013/11/09 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
2014年食堂工作总结
2014/11/20 职场文书
环保守法证明
2015/06/24 职场文书
教育教学读书笔记
2015/07/02 职场文书
合理化建议书范文
2015/09/14 职场文书