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 相关文章推荐
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
怎样搭建PHP开发环境
Jul 28 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
Sep 16 PHP
laravel 框架结合关联查询 when()用法分析
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中source #N问题的解决方法
2014/01/27 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
php数据访问之增删改查操作
2016/05/09 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
JavaScript 学习初步 入门教程
2010/03/25 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
介绍Python中内置的itertools模块
2015/04/29 Python
Python对列表排序的方法实例分析
2015/05/16 Python
python数组复制拷贝的实现方法
2015/06/09 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Django ORM 查询管理器源码解析
2019/08/05 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
航空大学应届生求职信
2013/11/10 职场文书
会计工作总结范文2014
2014/12/23 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
《观察物体》教学反思
2016/02/17 职场文书
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server