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 相关文章推荐
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
php面向对象编程self和static的区别
May 08 PHP
php抽奖概率算法(刮刮卡,大转盘)
Apr 17 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
php版微信小店调用api示例代码
Nov 12 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 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
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
JS实现电商放大镜效果
2017/08/24 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
JS实现放烟花效果
2020/03/10 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
Python实现快速多线程ping的方法
2015/07/15 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
店长岗位的工作内容
2013/11/12 职场文书
小学后勤管理制度
2014/01/14 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
企业业务员岗位职责
2014/03/14 职场文书
门面房租房协议书
2014/08/20 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书