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定义