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 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
教你如何把一篇文章按要求分段
Oct 09 PHP
PHP 事件机制(2)
Mar 23 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
php截取字符串函数分享
Feb 02 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
PHP代码重构方法漫谈
Apr 17 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操作mysql数据库的基本类代码
2014/02/25 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
Vue3.x源码调试的实现方法
2019/10/13 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
Python显示进度条的方法
2014/09/20 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
python实现微信打飞机游戏
2020/03/24 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
给实习单位的感谢信
2014/02/01 职场文书
项目投资意向书
2014/04/01 职场文书
自我检讨书怎么写
2015/05/07 职场文书
Python正则表达式中flags参数的实例详解
2022/04/01 Python
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers