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 超链接 抓取实现代码
Jun 29 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
php实例分享之mysql数据备份
May 19 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
PHP创建单例后台进程的方法示例
May 23 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 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
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
浅析Python中的多进程与多线程的使用
2015/04/07 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
卫校护理专业毕业生求职信
2013/11/26 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
李白故里导游词
2015/02/12 职场文书
事业单位个人总结
2015/02/12 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
管辖权异议上诉状
2015/05/23 职场文书
教师节老师寄语
2015/05/28 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
女性励志书籍推荐
2019/08/19 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers