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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
PHP取得一个类的属性和方法的实现代码
May 22 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
利用php绘制饼状图的实现代码
Jun 07 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
php中文验证码实现方法
Jun 18 PHP
实现PHP搜索加分页
Oct 12 PHP
关于php 高并发解决的一点思路
Apr 16 PHP
PHP 断点续传实例详解
Nov 11 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHP实现APP微信支付的实例讲解
Feb 10 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的FTP学习(一)
2006/10/09 PHP
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
window下eclipse安装python插件教程
2017/04/24 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
在Python中输入一个以空格为间隔的数组方法
2018/11/13 Python
python根据url地址下载小文件的实例
2018/12/18 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
业务员岗位职责范本
2013/12/15 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
python pygame入门教程
2021/06/01 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL