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输出控制功能在简繁体转换中的应用
Oct 09 PHP
PHP 中文乱码解决办法总结分析
Jul 30 PHP
一步一步学习PHP(2)――PHP类型
Feb 15 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
php验证session无效的解决方法
Nov 04 PHP
PHP使用缓存即时输出内容(output buffering)的方法
Aug 03 PHP
PHP下载文件的函数实例代码
May 18 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
PHP PDOStatement::closeCursor讲解
Jan 30 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 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/11/16 PHP
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
python中argparse模块用法实例详解
2015/06/03 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
python实现用户名密码校验
2020/03/18 Python
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
GWebs公司笔试题
2012/05/04 面试题
商业房地产广告语
2014/03/13 职场文书
幼儿园评语大全
2014/04/17 职场文书
研修心得体会
2014/09/04 职场文书
作风大整顿心得体会
2014/09/10 职场文书
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python