ThinkPHP 分页函数的改造
首先在创建好ThinkPHP项目以后,打开根目录下的ThinkPHP/Common/functions.php(这里存放的是tp的公共函数)
添加如下代码
1 function mypage($tot,$length){ 2 $page=$_GET[\'p\']?$_GET[\'p\']:1; 3 $offset=($page-1)*$length; 4 $prevpage=$page-1; 5 6 $pages=ceil($tot/$length); 7 8 if($page>=$pages){ 9 $nextpage=$pages; 10 }else{ 11 $nextpage=$page+1; 12 } 13 14 $limit="{$offset},{$length}"; 15 16 $show=" 17 <h4> 18 <a href=\'__SELF__/p/1\'class=\'btn btn-warning btn-sm\'>首页</a> 19 <a href=\'__SELF__/p/{$prevpage}\' class=\'btn btn-warning btn-sm\'>上一页</a> 20 <span>{$page}/{$pages}</span> 21 <a href=\'__SELF__/p/{$nextpage}\' class=\'btn btn-warning btn-sm\'>下一页</a> 22 <a href=\'__SELF__/p/{$pages}\' class=\'btn btn-warning btn-sm\'>末页</a> 23 </h4>"; 24 C(\'limit\',$limit); 25 C(\'show\',$show); 26 }
这样就定义好了分页函数。其中a连接的class可以自己定义,也可以不定义,之后在页面中通过css从父元素选中分页的html定义样式。
之后就是在Action中引用分页函数:(红色部分是关键代码)
1 $goods=M(\'Goods\'); 2 $count=$goods->where(\'is_pass=1 and is_self=1\')->count(); 3 mypage($count,5); 4 $this->rows=$goods->where(\'is_pass=1 and is_self=1\')->limit(C(\'limit\'))->order(\'trade_num desc,price asc\')->select(); 5 $this->assign(\'show\',C(\'show\')); 6 $this->display();
在tpl模板中引用:
1 <div> 2 <{$show}> 3 </div>
因为我用的是bootstrap所以效果如下,样式可以自己通过css定义