2016/06/09 ThinkPHP3.2.3使用分页
效果图:
在这里我有先把page的设置做成了一个函数getpage,将这个方法放到Application\Common\Common\function.php(注意function不是类)中方便其他地方调用,代码如下:
1 <?php 2 /** 3 * TODO 基础分页的相同代码封装,使前台的代码更少 4 * @param $count 要分页的总记录数 5 * @param int $pagesize 每页查询条数 6 * @return \Think\Page 7 */ 8 function getpage($count, $pagesize = 10) { 9 $p = new Think\Page($count, $pagesize); 10 $p->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>'); 11 $p->setConfig('prev', '上一页'); 12 $p->setConfig('next', '下一页'); 13 $p->setConfig('last', '末页'); 14 $p->setConfig('first', '首页'); 15 $p->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%'); 16 $p->lastSuffix = false;//最后一页不显示为总页数 17 return $p; 18 } 19 ?>
控制器中使用的代码如下:
1 public function showAllUsers() { 2 $m = M('User'); 3 $where = "id>10"; 4 $count = $m->where($where)->count(); 5 $p = getpage($count,1); 6 $list = $m->field(true)->where($where)->order('id')->limit($p->firstRow, $p->listRows)->select(); 7 $this->assign('select', $list); // 赋值数据集 8 $this->assign('page', $p->show()); // 赋值分页输出 9 $this->display(); 10 }
接下来在View中的使用:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>用户信息输出</title> 6 <link href="__ROOT__/Public/Css/style.css" rel="stylesheet" type="text/css" /> 7 <link href="__ROOT__/Public/Css/mypage.css" rel="stylesheet" type="text/css"/> 8 </head> 9 10 <body> 11 <table width="405" border="1" cellpadding="1" cellspacing="1" bgcolor="#99CC33" bordercolor="#FFFFFF"> 12 <tr> 13 <td colspan="3" bgcolor="#FFFFFF" class="title" align="center">当前登录用户:{$Think.session.admin}</td> 14 </tr> 15 <tr> 16 <td colspan="3" bgcolor="#FFFFFF" class="title" align="center">用户信息</td> 17 </tr> 18 <tr class="title"> 19 <td bgcolor="#FFFFFF" width="44">ID</td> 20 <td bgcolor="#FFFFFF" width="120">用户名</td> 21 <td bgcolor="#FFFFFF" width="223">密码</td> 22 </tr> 23 <foreach name='select' item='user' > 24 <tr class="content"> 25 <td bgcolor="#FFFFFF"> {$user.id}</td> 26 <td bgcolor="#FFFFFF"> {$user.account}</td> 27 <td bgcolor="#FFFFFF"> {$user.pwd}</td> 28 </tr> 29 </foreach> 30 <tr class="content"> 31 <!--<td colspan="3" bgcolor="#FFFFFF"> {$page}</td>--> 32 <td colspan="3" bgcolor="#FFFFFF"><div class="pages"> 33 {$page} 34 </div></td> 35 </tr> 36 </table> 37 </body> 38 </html>
其中设置分页的样式mypage.css,如下:
1 .pages a,.pages span { 2 display:inline-block; 3 padding:2px 5px; 4 margin:0 1px; 5 border:1px solid #f0f0f0; 6 -webkit-border-radius:3px; 7 -moz-border-radius:3px; 8 border-radius:3px; 9 } 10 .pages a,.pages li { 11 display:inline-block; 12 list-style: none; 13 text-decoration:none; color:#58A0D3; 14 } 15 .pages a.first,.pages a.prev,.pages a.next,.pages a.end{ 16 margin:0; 17 } 18 .pages a:hover{ 19 border-color:#50A8E6; 20 } 21 .pages span.current{ 22 background:#50A8E6; 23 color:#FFF; 24 font-weight:700; 25 border-color:#50A8E6; 26 }