ThinkPHP3.2.3实现分页的方法详解


Posted in PHP onJune 03, 2016

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

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

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

ThinkPHP3.2.3实现分页的方法详解

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

<?php
/**
 * TODO 基础分页的相同代码封装,使前台的代码更少
 * @param $count 要分页的总记录数
 * @param int $pagesize 每页查询条数
 * @return \Think\Page
 */
function getpage($count, $pagesize = 10) {
  $p = new Think\Page($count, $pagesize);
  $p->setConfig('header', '<li class="rows">共<b>%TOTAL_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->lastSuffix = false;//最后一页不显示为总页数
  return $p;
}
?>

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

public function showAllUsers() {
    $m = M('User');
    $where = "id>10";
    $count = $m->where($where)->count();
    $p = getpage($count,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"> {$user.id}</td>
          <td bgcolor="#FFFFFF"> {$user.account}</td>
          <td bgcolor="#FFFFFF"> {$user.pwd}</td>
        </tr>
      </foreach>
      <tr class="content">
        <!--<td colspan="3" bgcolor="#FFFFFF"> {$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;
}

这样就可以了。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
10个php函数实用却不常见
Oct 13 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 PHP
php for 循环使用的简单实例
Jun 02 #PHP
Yii多表联合查询操作详解
Jun 02 #PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 #PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 #PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 #PHP
PHP处理数组和XML之间的互相转换
Jun 02 #PHP
PHP邮箱验证示例教程
Jun 01 #PHP
You might like
php简单封装了一些常用JS操作
2007/02/25 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
JavaScript 继承详解(四)
2009/07/13 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
Python中的条件判断语句基础学习教程
2016/02/07 Python
浅谈Python中函数的参数传递
2016/06/21 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
经典的毕业生自荐信范文
2014/04/14 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL