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 相关文章推荐
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 PHP
MYSQL环境变量设置方法
Jan 15 PHP
php5 pdo新改动加载注意事项
Sep 11 PHP
又一个php 分页类实现代码
Dec 03 PHP
JS 网站性能优化笔记
May 24 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
Jun 22 PHP
php 可变函数使用小结
Jun 12 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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&amp;&amp;mysql)五
2006/10/09 PHP
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
PHP新手上路(二)
2006/10/09 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php四种定界符详解
2017/02/16 PHP
js一组验证函数
2008/12/20 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
浅谈Python type的使用
2019/11/19 Python
django-csrf使用和禁用方式
2020/03/13 Python
python如何对链表操作
2020/10/10 Python
柯基袜:Corgi Socks
2017/01/26 全球购物
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
程序员岗位职责
2013/11/11 职场文书
考试违纪检讨书
2014/02/02 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫
基于Python实现nc批量转tif格式
2022/08/14 Python