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操作Access类(PHP+ODBC+Access)
Jan 02 PHP
php+MySQL判断update语句是否执行成功的方法
Aug 28 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
PHP实现本地图片转base64格式并上传
May 29 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+ajax 无刷新删除数据
2010/02/20 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
什么是Python中的匿名函数
2020/06/02 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
顶碗少年教学反思
2014/02/21 职场文书
党员创先争优活动总结
2014/05/04 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
工作说明书范文
2014/05/07 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
Python图片检索之以图搜图
2021/05/31 Python
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA