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(2)
Oct 09 PHP
如何对PHP程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP与javascript的两种交互方式
Oct 09 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
PHP环形链表实现方法示例
Sep 15 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP与Web页面的交互示例详解一
Aug 04 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新手上路(四)
2006/10/09 PHP
php include,include_once,require,require_once
2008/09/05 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
零基础小白多久能学会python
2020/06/22 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
2014年涉外离婚协议书范本
2014/11/20 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
教师远程培训心得体会
2016/01/09 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
python - asyncio异步编程
2021/04/06 Python