ThinkPHP3.2.3使用分页

首先要搞清楚的就是ThinkPHP3.2.3的分页类已经被移到了Think\Page.class.php,这是跟以前的版本有些不一样的,使用起来还是跟以前版本差不多,但是默认的效果不敢恭维,所以最好是自己加些样式。

我加了一些样式(不怎么好看),大家可以自行的再去改进,效果图:

在这里我有先把page的设置做成了一个函数getpage,将这个方法放到Application\Common\Common\function.php(注意function不是类)中方便其他地方调用,代码如下:

<?php
/**
 * TODO 基础分页的相同代码封装,使前台的代码更少
 * @param $m 模型
 * @param $where 查询条件
 * @param int $pagesize 每页查询条数
 * @return \Think\Page
 */
function getpage($m, $where, $pagesize = 10) {
    $count = $m->where($where)->count();
    $p = new Think\Page($count, $pagesize);
    $p->setConfig(‘header‘, ‘<li class="rows">共<b>%TOTAL_ROW%</b>条记录&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%‘);
    return $p;
}
?>

控制器中使用的代码如下:

public function showAllUsers() {
        $m = M(‘User‘);
        $where = "id>10";
        $p = getpage($m, $where, 1);
        $list = $m->field(true)->where($where)->order(‘id‘)->limit($p->firstRow, $p->listRows)->select();
        $this->assign(‘select‘, $list); // 赋值数据集
        $this->assign(‘page‘, $p->show()); // 赋值分页输出
        $this->display();
    }

接下来在View中的使用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>用户信息输出</title>
        <link href="__ROOT__/Public/Css/style.css" rel="stylesheet" type="text/css" />
        <link href="__ROOT__/Public/Css/mypage.css" rel="stylesheet" type="text/css"/>
    </head>

    <body>
        <table width="405" border="1" cellpadding="1" cellspacing="1" bgcolor="#99CC33" bordercolor="#FFFFFF">
            <tr>
                <td colspan="3" bgcolor="#FFFFFF" class="title" align="center">当前登录用户:{$Think.session.admin}</td>
            </tr>
            <tr>
                <td colspan="3" bgcolor="#FFFFFF" class="title" align="center">用户信息</td>
            </tr>
            <tr class="title">
                <td bgcolor="#FFFFFF" width="44">ID</td>
                <td bgcolor="#FFFFFF" width="120">用户名</td>
                <td bgcolor="#FFFFFF" width="223">密码</td>
            </tr>
            <foreach name=‘select‘ item=‘user‘ >
                <tr class="content">
                    <td bgcolor="#FFFFFF">&nbsp;{$user.id}</td>
                    <td bgcolor="#FFFFFF">&nbsp;{$user.account}</td>
                    <td bgcolor="#FFFFFF">&nbsp;{$user.pwd}</td>
                </tr>
            </foreach>
            <tr class="content">
                <!--<td colspan="3" bgcolor="#FFFFFF">&nbsp;{$page}</td>-->
                <td colspan="3" bgcolor="#FFFFFF"><div class="pages">
                        {$page}
                </div></td>
            </tr>
        </table>
    </body>
</html>

其中设置分页的样式mypage.css,如下:

.pages a,.pages span {
    display:inline-block;
    padding:2px 5px;
    margin:0 1px;
    border:1px solid #f0f0f0;
    -webkit-border-radius:3px;
    -moz-border-radius:3px;
    border-radius:3px;
}
.pages a,.pages li {
    display:inline-block;
    list-style: none;
    text-decoration:none; color:#58A0D3;
}
.pages a.first,.pages a.prev,.pages a.next,.pages a.end{
    margin:0;
}
.pages a:hover{
    border-color:#50A8E6;
}
.pages span.current{
    background:#50A8E6;
    color:#FFF;
    font-weight:700;
    border-color:#50A8E6;
}

这样就可以了。

时间: 2024-10-13 05:55:58

ThinkPHP3.2.3使用分页的相关文章

2016/06/09 ThinkPHP3.2.3使用分页

效果图: 在这里我有先把page的设置做成了一个函数getpage,将这个方法放到Application\Common\Common\function.php(注意function不是类)中方便其他地方调用,代码如下: 1 <?php 2 /** 3 * TODO 基础分页的相同代码封装,使前台的代码更少 4 * @param $count 要分页的总记录数 5 * @param int $pagesize 每页查询条数 6 * @return \Think\Page 7 */ 8 functi

关于Thinkphp3.2版本的分页问题

最近公司官网改版,需要把旧的thinkphp版本换到现在最新的3.2去,因此,就开展了一系列的升级工作..在修改命名空间的同时,发现Page分页类能正常运行了,但是分页的链接却是错误的,例如在Admin模块的Article控制器的index动作中,本应该生成Admin-Article-index-p-xx(数字)的链接才对,但是却生成了Article-index-p-xx,也就是说少了个模块在url前面. 找了一顿资料后发现并没有多大收效,看到Page类中创建链接的一段代码中,发现Page的ur

ThinkPHP3.2.3学习笔记6---专题---数据分页

http://document.thinkphp.cn/manual_3_2.html#data_page thinkphp3.2.3中分类的功能调用的文件$THINKPHP_HOME/ThinkPHP/Library/Think/Page.class.php,这个文件只有150行左右,不复杂,比较容易看懂,方便自己修改,也可以在此基础上进行新功能的扩展. 控制器$THINKPHP_HOME/Application/Home/Controller/PageController.class.php

thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下:即本博客的分页: 这个分页类是在thinkphp框架内置的分页类的基础上修改而来: 原分页类的一些设计,在实际运用中感觉不是很方便: 1:只有一页内容时不显示分页: 2:原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮: 3:分页数比较少时不显示首页和末页按钮: 4:包裹分页内容的父级div没有class: 针对以上问题逐一进行了修改成如下: 1:如果没有数据不显示分页,如果有一页及以上内容即显示分页: 2:默认就显示第一页和最后一页按钮,但是在当前

2016/05/17 thinkphp3.2.2 分页的使用:①在Home下设置Publics文件夹或在thinkPHP下library的vender 把page.class.php 考贝进入 ②通过new 实例化方式调用 $page=new \Home\Publics\Page($total,3);

注意分页的方法有两种:一种是thinkphp3.2 自带的   另一种是之前新闻页用过的     显示效果稍有差别 显示效果: 细节问题: ①搜索页面  要加session判断   和  分页 ②修改和添加页面需要有session判断 ③增删改的权限设置 控制器端: 1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 class UserController extends Controller 5 { 6 public

ThinkPHP3.2.3自带的分页用法--很简单实用

把解压后的Page.class.php放入ThinkPHP/Extend/Library/ORG/Util/(如果没有请手动创建)目录下面.thinkphp 自带的分页非常好用美观,先看一下如下代码片段         $Data = M('Data'); // 实例化Data数据对象 把解压后的Page.class.php放入ThinkPHP/Extend/Library/ORG/Util/(如果没有请手动创建)目录下面.thinkphp 自带的分页非常好用美观,先看一下如下代码片段     

ThinkPHP3.2 分页实现

ThinkPHP 分页实现 TP3.2框架手册,有一个数据分页,不过每次都要写太多的代码,还有中文设置等有些麻烦,做为程序开发者,有必要整理下: O.先看效果图 一.分页方法 /** * TODO 基础分页的相同代码封装,使前台的代码更少 * @param $m 模型,引用传递 * @param $where 查询条件 * @param int $pagesize 每页查询条数 * @return \Think\Page */ function getpage(&$m,$where,$pages

thinkphp3.1 分页 注释

有id.标题.内容.创建时间 有创建时间.标题.(分页) (分页)={$page}= $count = $Form->count(); //计算总数 $Page = new Page($count, 5); $list = $Form->limit($Page->firstRow. ',' . $Page->listRows)->order('id desc')->select(); // 模拟设置分页额外传入的参数 $Page->parameter = 'sea

基于thinkphp3.2实现的联查后的数组分页

直接可以调用tp框架的内置函数类 //列表数组分页 $count=count($newsList); $Page=new \Think\Page($count,4); $show = $Page->show(); $list=array_slice($newsList,$Page->firstRow,$Page->listRows); $this->assign('list',$list);// 赋值数据集 $this->assign('page',$show);// 赋值分