TP框架实现分页

TP框架自带分页的实现方法,所以使用这个分页方案,不用再重新造轮子

1,先看效果图

2,源码

    /**
     * TODO 基础分页的相同代码封装,使前台的代码更少
     * @param $m 模型,引用传递
     * @param $where 查询条件
     * @param int $pagesize 每页查询条数
     * @return \Think\Page
     */
    public static function getpage(&$m,$where,$pagesize=10){
        $m1=clone $m;//浅复制一个模型
        $count = $m->where($where)->count();//连惯操作后会对join等操作进行重置
        $m=$m1;//为保持在为定的连惯操作,浅复制一个模型
        $p=new Think\Page($count,$pagesize);
        $p->rollPage=5;//每个页面显示几个分页标签
        $p->listRows = 13;//这里设置每页显示多少行
        $p->lastSuffix=false;

        $p->setConfig(‘header‘,‘<li class="rows">共<b>%TOTAL_ROW%</b>条记录&nbsp;&nbsp;每页<b>%LIST_ROW%</b>条&nbsp;&nbsp;第<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;
    }

TP分页

getpage方法可以放在TP框架的 Application/Common/Common/function.php,这个文档可以专门放置一些通用的方法,在哪里都可以调用(如:Controller文件,View文件等)。

3,调用方法

        $m = M(‘tbl_log_register‘);
        $p= \CommonHelper::getPage($m,$sqlcondition,13); //获取分页的html文件
        $mlist = $m->where($sqlcondition)->order(‘START_TIME desc‘)->select();//获取当前页的条目
        $this->assign(‘fenyeResult‘,$mlist);
        $this->assign(‘pageNum‘,$p->show());

调用方案

4,就是样式了(注意,要将分页的html页面放到一个div框中,这个div框的样式的类的名字是class="pagination"

.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}

样式

5,本文转载自http://www.cnblogs.com/suger/p/4024246.html,谢谢他的总结,然后在使用过程中发现在tp3.2.3版本中没有了%LIST_ROW%这个变量的值,然后查看源码得知,最后并没有替换这个字符串,解决方案如下

这个文件的路径是D:\ThinkPHP\Library\Think\Page.class.php,然后最后替换即可

时间: 2024-10-06 21:57:26

TP框架实现分页的相关文章

TP框架实现分页(NEW)

TP框架自带分页的实现方法,所以使用这个分页方案,不用再重新造轮子 1,先看效果图 2,源码 /** * TODO 基础分页的相同代码封装,使前台的代码更少 * @param $m 模型,引用传递 * @param $where 查询条件 * @param int $pagesize 每页查询条数 * @return \Think\Page */ public static function getpage(&$m,$where,$pagesize=10){ $m1=clone $m;//浅复制

tp框架之分页与第三方类的应用

1.先把分页类放在根目录下,比如放在某个模块下 2.在类里面写入命名空间,注意类名的格式(类名要与里面的方法名一致) 3.在需要的方法里面按照路径进行实例化,然后就可以使用了 方法: public function xianshi() { $c = D("chinastates"); $shuliang = $c->count(); //查询总条数 $page = new \Home\libs\Page($shuliang,15); //实例化分页类并传参数 $xinxi = $

TP框架实现分页及条件查询

public function xianshi(){ $db = D("doc"); $tj = " 1=1 "; $title = ""; if(!empty($_GET["name"])){ $title = $_GET["name"]; $tj = " title like '%{$title}%'"; } $arr = $db ->where($tj) ->page(

第一零五天上课 PHP TP框架下分页

控制器代码(TestController.class.php) <?php namespace Home\Controller; use Home\Controller\EmptyController; class TestController extends EmptyController { public function test() { $user = D('User'); $count = $user->count(); //获取数据总条数 $page = new \Think\Pa

TP框架中的page分页实现

今天介绍一下如何在tp框架中使用分页功能(TP3.2) 1.第一步,找到我们需要使用的分页类(page.class.php),并将其放在命名空间根目录下的一个位置,比如Library文件夹下或者当前模块下(例如Application  ) 打开分页类,修改命名空间 2.第二步,找到需要分页功能的控制器中相对应的操作方法 public function index(){ $art=M("article"); //分页显示方法 $zts=$art->count(); //查询总条数

ThinkPhp框架:有条件的数据库查询、tp框架的其他知识

上一篇的随笔写的是基本操作,现在可以做一些高级操作,例如有条件的查询数据,有分页的条件查询数据 一.一个条件的查询数据 查询数据自然是先要显示出数据,然后根据条件进行查询数据 (1)显示出表的数据 这个方法我还是写在了HomeController.class控制器文件中 (1.1)写了一个方法shouye() public function shouye() { $n = M("nation"); //数据库中的表 $arr = $n->select(); //查询表中的所有数据

tp框架-----Model模型层

1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php.    如何修改配置呢? 1)打开下图路径中的Convention.php文件 2)复制convention.php中的下图内容到Home/Conf/config.php中 3)修改配置,将自己的数据

TP框架---thinkphp基础知识

php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费

tp框架知识集锦(3.2)

php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费 4. 项目不