ThinkPHP 3.2 数据分页代码分享


Posted in PHP onOctober 14, 2014

TP3.2框架手册,有一个数据分页,不过每次都要写太多的代码,还有中文设置等有些麻烦,做为程序开发者,有必要整理下:

O、先看效果图

ThinkPHP 3.2 数据分页代码分享

一、分页方法

/**

 * 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}
PHP 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
解析php开发中的中文编码问题
Aug 08 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
Zend Framework创建自己的动作助手详解
Mar 05 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 #PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 #PHP
PHP+jQuery 注册模块开发详解
Oct 14 #PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 #PHP
php中动态修改ini配置
Oct 14 #PHP
php中的ini配置原理详解
Oct 14 #PHP
9段PHP实用功能的代码推荐
Oct 14 #PHP
You might like
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
JavaScript 事件的一些重要说明
2009/10/25 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
js实现炫酷光感效果
2020/09/05 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python的re正则表达式实例代码
2018/01/24 Python
Python实现全排列的打印
2018/08/18 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python学生管理系统的实现
2020/04/05 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
基于python代码批量处理图片resize
2020/06/04 Python
浅谈python 类方法/静态方法
2020/09/18 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
静态变量和实例变量的区别
2015/07/07 面试题
乒乓球兴趣小组活动总结
2014/07/08 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
呐喊读书笔记
2015/06/30 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python