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 相关文章推荐
PHP4与PHP5的时间格式问题
Feb 17 PHP
mysql 性能的检查和优化方法
Jun 21 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
php的hash算法介绍
Feb 13 PHP
php中smarty区域循环的方法
Jun 11 PHP
php实现转换ubb代码的方法
Jun 18 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 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
如何将数据从文本导入到mysql
2006/10/09 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
js自定义Tab选项卡效果
2017/06/05 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
python正则表达式之作业计算器
2016/03/18 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
python中sys.argv函数精简概括
2018/07/08 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
公司董事长职责
2013/12/12 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
财务整改报告范文
2014/11/05 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
监守自盗观后感
2015/06/10 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
浅谈pytorch中的dropout的概率p
2021/05/27 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫