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 feof用来识别文件末尾字符的方法
Aug 01 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
php在线代理转向代码
May 05 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
JavaScript 基本概念
2015/01/20 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
Django操作session 的方法
2020/03/09 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
中学生班主任评语
2014/01/30 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
python获取对象信息的实例详解
2021/07/07 Python
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python