Thinkphp3.2.3分页使用实例解析

2018-09-07 15:17

阅读:268

  首先要搞清楚的就是ThinkPHP3.2.3的分页类已经被移到了Think\Page.class.php,这是跟以前的版本有些不一样的,使用起来还是跟以前版本差不多,但是默认的效果不敢恭维,所以最好是自己加些样式。

  我加了一些样式(不怎么好看),大家可以自行的再去改进分页样式,效果图:

  

  在这里我有先把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 用户信息输出</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; }

  这样就可以了。

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


评论


亲,登录后才可以留言!