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 相关文章推荐
php获得文件扩展名三法
Nov 25 PHP
PHP中动态显示签名和ip原理
Mar 28 PHP
php URL编码解码函数代码
Mar 10 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
php实现用户在线时间统计详解
Oct 08 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
php inc文件使用的风险和注意事项
Nov 12 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
php修改指定文件后缀的方法
Sep 11 PHP
php HTML无刷新提交表单
Apr 05 PHP
PHP网站自动化配置的实现方法(必看)
May 27 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实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
使用python实现tcp自动重连
2017/07/02 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
普通党员个人整改措施
2014/10/27 职场文书
员工离职感谢信
2015/01/22 职场文书
公司食堂管理制度
2015/08/05 职场文书
珍爱生命主题班会
2015/08/13 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
PHP中->和=>的意思
2021/03/31 PHP
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
python实现调用摄像头并拍照发邮箱
2021/04/27 Python