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部分常见问题总结
Oct 09 PHP
php MySQL与分页效率
Jun 04 PHP
linux命令之调试工具strace的深入分析
Jun 03 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 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实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
应届生财务会计求职信
2013/11/05 职场文书
美术师范毕业生自荐信
2013/11/16 职场文书
职业生涯规划书基本格式
2014/01/06 职场文书
机电一体化职业规划书
2014/01/07 职场文书
单位提档介绍信
2014/01/17 职场文书
服务员岗位职责
2014/01/29 职场文书
税务会计岗位职责
2014/02/18 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
个人向公司借款协议书
2016/03/19 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript