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
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
PHP处理大量表单字段的便捷方法
Feb 07 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
PHP类相关知识点实例总结
Sep 28 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 PHP
Laravel实现批量更新多条数据
Apr 06 PHP
PHP实现抽奖功能实例代码
Jun 30 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编译安装时常见错误解决办法
2015/05/28 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
vue better-scroll插件使用详解
2018/01/25 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
vue中的inject学习教程
2019/04/24 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
Python实现Const详解
2015/01/27 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
详解python中的index函数用法
2019/08/06 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
解决c++调用python中文乱码问题
2020/07/29 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
城南旧事观后感
2015/06/11 职场文书
乔迁新居祝福语
2019/11/04 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers