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 相关文章推荐
加速XP搜索功能堪比vista
Mar 22 PHP
php实现mysql数据库备份类
Mar 20 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
php截取后台登陆密码的代码
May 05 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
PHP+iframe模拟Ajax上传文件功能示例
Jul 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 缩略图实现函数代码
2011/06/23 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
用Python3创建httpServer的简单方法
2018/06/04 Python
实用自动化运维Python脚本分享
2018/06/04 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
财务整改报告范文
2014/11/05 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
财政局长个人总结
2015/03/04 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
生活委员竞选稿
2015/11/21 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis