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 代码优化之经典示例
Mar 24 PHP
php编写一个简单的路由类
Apr 13 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
详解PHP中的PDO类
Jul 06 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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中用foreach来操作数组的代码
2011/07/17 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
写的htc的数据表格
2007/01/20 Javascript
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python 异常处理的实例详解
2017/09/11 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
python中time库的实例使用方法
2019/10/31 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
热爱祖国的演讲稿
2014/05/04 职场文书
酒后驾车标语
2014/06/30 职场文书
介绍长城的导游词
2015/01/30 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
羊脂球读书笔记
2015/06/30 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis