ThinkPHP实现分页功能实例

介绍

这篇文章主要讲解了“ThinkPHP实现分页功能实例”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ThinkPHP实现分页功能实例”吧!

本文实例讲述了ThinkPHP分页的实现方法,分享给大家供大家参考。具体方法如下:

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

实例运行效果如下图所示:

 ThinkPHP实现分页功能实例

<强>一、分页方法:

代码如下:

/* *
, * TODO基础分页的相同代码封装,使前台的代码更少
, * @param $ m模型,引用传递
, * @param美元在哪里查询条件
, *页大小(@param int美元每页查询条数
, * @return \认为\
,页*/
函数getpage(和m美元,美元,美元页大?10){
,,,m1=克隆m美元;//浅复制一个模型
,,,数=m→美元(美元)→在count();//连惯操作后会对加入等操作进行重置
,,,m=m1;美元//为保持在为定的连惯操作,浅复制一个模型
,,,$ p=新认为\页面(计数,页大小美元);
,,,$ p→lastSuffix=false;
,,,$ p→setConfig(& # 39;头# 39;,& # 39;& lt;李类=皉ows"在共& lt; b> % TOTAL_ROW % & lt;/b>条记录,,,,每页& lt; b> % LIST_ROW % & lt;/b>条,,,,第& lt; b> % NOW_PAGE % & lt;/b>页/共& lt; b> % TOTAL_PAGE % & lt;/b>页& lt;/li> & # 39;);
,,,$ p→setConfig (& # 39; prev # 39;, & # 39;上一页& # 39;);
,,,$ p→setConfig(& # 39;未来# 39;,& # 39;下一页& # 39;);
,,,$ p→setConfig(& # 39;这# 39;,& # 39;末页& # 39;);
,,,$ p→setConfig(& # 39;第一个# 39;,& # 39;首页& # 39;);
,,,$ p→setConfig(& # 39;主题# 39;,& # 39;%第一% % % % % % DOWN_PAGE LINK_PAGE UP_PAGE % % % %头% & # 39;结束),

,,,$ p→参数=我(& # 39;强生# 39;);

,,,m→美元上限($ p→firstRow, $ p→listRows);

,,,返回$ p;
}

getpage方法可以放在TP框架的应用程序/共同/共同/功能。php,这个文档可以专门放置一些通用的方法,在哪里都可以调用(如:控制器文件,视图文件等)。

<强>二、调用分页方法

代码如下:

m=美元(& # 39;产品# 39;);
$ p=getpage (m,美元,10);
$=$ m→列表字段(真正)→(美元)→地方秩序(& # 39;id desc # 39;)→选择();
$ this→列表=$;
$ this→页面=$ p→显示();
再是视图代码

& lt; div类=皃agination"在
{$页面}
& lt;/div>
,

<强>三,最后就是分页的样式强了,这个有些乱,因后台框架网上下载的,样式还没来的及整理,这个样式也可以自己实现,简单的。

代码如下:

。分页ul {
,,,显示:inline-block;
,,,margin-bottom: 0;
,,,margin-left: 0;
,,,-webkit-border-radius: 3 px;
,,,-moz-border-radius: 3 px;
,,,border - radius: 3 px;
,,,-webkit-box-shadow: 0 1 px 2 px rgba (0, 0, 0, 0.05);
,,,-moz-box-shadow: 0 1 px 2 px rgba (0, 0, 0, 0.05);
,,,不必:0 1 px 2 px rgba (0, 0, 0, 0.05);
}
。分页ul李{
,显示:内联;
}

。分页ul。行{
,,,行高:30 px;
,,,padding-left: 5 px;
}
。分页ul。行b{颜色:# f00}

。分页ul李,李.pagination ul跨度{
,,,浮:左;
,,,填充:4 px 12 px;
,,,行高:20 px;
,,,文字修饰:没有;
,,,background - color: # fff;
,,,背景:url(& # 39; . ./图片/bottom_bg.png& # 39;) 0 px 0 px;
,,,边界:1 px固体# d3dbde;
,,,/* border-left-width: 0 */
,,,margin-left: 2 px;
,,,颜色:# 08 c;
}
。分页ul李答:悬停{
,,,颜色:红色,
,,,背景:# 0088 cc的;
}
。分页ul。第一个孩子,.pagination ul。第一个孩子跨度{
,,,border-left-width: 1 px;
,,,-webkit-border-bottom-left-radius: 3 px;
,,,border-bottom-left-radius: 3 px;
,,,-webkit-border-top-left-radius: 3 px;
,,,border-top-left-radius: 3 px;
,,,-moz-border-radius-bottomleft: 3 px;
,,,-moz-border-radius-topleft: 3 px;
}
。分页ul .disabled跨度,.pagination ul .disabled .pagination ul .disabled答:悬停{
颜色:# 999;
光标:违约;
背景颜色:透明的;
}
。分页ul .active, .pagination ul .active跨度{
颜色:# 999;
光标:违约;
}
。分页ul李答:悬停,.pagination ul .active, .pagination ul .active跨度{
background - color: # f0c040;
}
。分页ul。胎,.pagination ul。胎跨度{
,,,-webkit-border-top-right-radius: 3 px;
,,,border-top-right-radius: 3 px;
,,,-webkit-border-bottom-right-radius: 3 px;
,,,border-bottom-right-radius: 3 px;
,,,null

ThinkPHP实现分页功能实例