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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
解析php防止form重复提交的方法
Jul 01 PHP
php缓存技术详细总结
Aug 07 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
php实现加减法验证码代码
Feb 14 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 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下把数组保存为文件格式的实例应用
2010/02/08 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
javascript 闭包
2011/09/15 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
python操作excel让工作自动化
2019/08/09 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
学校后勤人员职责
2013/12/27 职场文书
音乐教学反思
2014/02/02 职场文书
六个一活动实施方案
2014/03/21 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
个人年终总结范文
2015/03/09 职场文书
运动会通讯稿100字
2015/07/20 职场文书
关于的python五子棋的算法
2022/05/02 Python