thinkphp分页实现效果


Posted in PHP onOctober 13, 2016

对于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}
PHP 相关文章推荐
?繁体转换的class
Oct 09 PHP
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
php 处理上百万条的数据库如何提高处理查询速度
Feb 08 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
PDO::errorInfo讲解
Jan 28 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 PHP
php实现图片以base64显示的方法
Oct 13 #PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 #PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 #PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 #PHP
php结合ajax实现手机发红包的案例
Oct 13 #PHP
php加密解密字符串示例
Oct 13 #PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 #PHP
You might like
短波收音机简介
2021/03/01 无线电
PHP实现分页的一个示例
2006/10/09 PHP
php iconv() : Detected an illegal character in input string
2010/12/05 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
thinkPHP查询方式小结
2016/01/09 PHP
动态加载script文件的两种方法
2013/08/15 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
Python调用C语言开发的共享库方法实例
2015/03/18 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
Python之pymysql的使用小结
2019/07/01 Python
Python的条件锁与事件共享详解
2019/09/12 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Python新手学习装饰器
2020/06/04 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
医科大学毕业生自荐信
2014/02/03 职场文书
《我不是最弱小的》教学反思
2014/02/23 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
学校春季防火方案
2014/06/08 职场文书
党委班子对照检查材料
2014/08/19 职场文书
苏州园林导游词
2015/02/03 职场文书
楚门的世界观后感
2015/06/03 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
详解Vue slot插槽
2021/11/20 Vue.js
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
Python PIL按比例裁剪图片
2022/05/11 Python
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android