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 和 XML: 使用expat函数(三)
Oct 09 PHP
PHP数字格式化
Dec 06 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
国外比较好的几个的Php开源建站平台小结
Apr 22 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
laravel 解决crontab不执行的问题
Oct 22 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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 ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
证婚人经典证婚词
2014/01/09 职场文书
竞聘上岗演讲稿范文
2014/01/10 职场文书
网页美工求职信范文
2014/04/17 职场文书
企业2014年度工作总结
2014/12/10 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2015年酒店工作总结
2015/04/28 职场文书
爱国主义电影观后感
2015/06/18 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书