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
第九节--绑定
Nov 16 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
PHP7.0安装笔记整理
Aug 28 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
php简单的上传类分享
May 15 PHP
php精度计算的问题解析
Jun 21 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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中文件缓存转内存缓存的方法
2011/12/06 PHP
如何在php中正确的使用json
2013/08/06 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
javascript中的this详解
2014/12/08 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
浅谈python迭代器
2017/11/08 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
青年教师听课心得体会
2016/01/15 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
golang 在windows中设置环境变量的操作
2021/04/29 Golang
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫
2022微信温控新功能上线
2022/05/09 数码科技
MySQL数据库之存储过程 procedure
2022/06/16 MySQL