首页 > 代码库 > thinkphp自定义分页效果
thinkphp自定义分页效果
TP自带了一个分页函数,挺方便使用的。
下面是我的使用方法:
1 /*****************分页显示start*************************/ 2 $arr_page=$this->page($user,1); 3 $show=$arr_page[‘show‘]; 4 $Page=$arr_page[‘Page‘]; 5 $article = $user->order(‘now‘)->limit($Page->firstRow.‘,‘.$Page->listRows)->select(); 6 if(!empty($_POST[‘seach_classify‘])){ 7 $seach_classify=$_POST[‘seach_classify‘]; 8 $arr_page=$this->page($user,1,"classify=‘$seach_classify‘"); 9 $show=$arr_page[‘show‘];10 $Page=$arr_page[‘Page‘];11 $Page->setconfig("prev","上");12 13 dump($Page); 14 $article=$user->order("now")->limit($Page->first.‘,‘.$Page->prev)->where("classify=‘$seach_classify‘")->select();15 }16 //dump($list);17 /*****************分页显示end************************/
结合自己包装的一个分页函数:
public function page($db,$num,$where){ $count = $db->where($where)->count();// $Page = new \Think\Page($count,$num);// 实例化分页类 传入总记录数和每页显示的记录数(25) $show = $Page->show();// 分页显示输出 return $arr_page = array( "show"=>$show, "Page"=>$Page, "count"=>$count, ); }
即可实现查询和按条件查询分页,这里的按条件查询分页,虽然能差出数据,但再点击查询的分页链接就返回原来的无条件查询了,
我这里判断的是$_POST[‘seach_classify‘]不为空才查询,不过可以理解,如果点击了查询分页链接,页面会刷新,$_POST[‘seach_classify‘]就返回是空的了,
现在还想不出解决办法,望高手解答!
下面是我自定义的分页效果制作:
需要修改底层的thinkphp/Library/Think/Page.class.php,修改如下:
1 // 分页显示定制2 private $config = array(3 ‘header‘ => ‘<span class="rows">共 %TOTAL_ROW% 篇文章</span>‘,//可以直接修改这里,也可以在你的方法里面设置$page->setconfig("header","篇文章")4 ‘prev‘ => ‘上一页‘,//这里同上5 ‘next‘ => ‘下一页‘,6 ‘first‘ => ‘返回首页‘,7 ‘last‘ => ‘...%TOTAL_PAGE%‘,8 ‘theme‘ => ‘%FIRST% %LINK_PAGE% %HEADER% %END%‘,//这里自定义你的分页输出内容,内容在下面9 );
1 //替换分页内容2 $page_str = str_replace(3 array(‘%HEADER%‘, ‘%NOW_PAGE%‘, ‘%UP_PAGE%‘, ‘%DOWN_PAGE%‘, ‘%FIRST%‘, ‘%LINK_PAGE%‘, ‘%END%‘, ‘%TOTAL_ROW%‘, ),//这里是自定义所需内容4 array($this->config[‘header‘], $this->nowPage, $up_page, $down_page, $the_first, $link_page, $the_end, $this->totalRows, $this->totalPages),5 $this->config[‘theme‘]);6 return "{$page_str}";
下面是效果自定义:
1 //数字连接 2 $link_page = ""; 3 for($i = 1; $i <= $this->rollPage; $i++){ 4 if(($this->nowPage - $now_cool_page) <= 0 ){ 5 $page = $i; 6 }elseif(($this->nowPage + $now_cool_page - 1) >= $this->totalPages){ 7 $page = $this->totalPages - $this->rollPage + $i; 8 }else{ 9 $page = $this->nowPage - $now_cool_page_ceil + $i;10 }11 if($page > 0 && $page != $this->nowPage){12 13 if($page <= $this->totalPages){14 $link_page .= ‘<a class="num" href="http://www.mamicode.com/‘ . $this->url($page) . ‘"><div>‘ . $page . ‘</div></a>‘;//这里的div我自己加的,以便用css定制效果!css见下面15 }else{16 break;17 }18 }else{19 if($page > 0 && $this->totalPages != 1){20 $link_page .= ‘<span class="current"><div id="nowPage">‘ . $page . ‘</div></span>‘;21 }22 }23 }
css:
div.fenye{background:; text-align:center; width:800px;margin:15px -400px 0 0; right:50%; position:absolute; box-shadow:0 0 5px #888;}div.fenye div{transition:background 0.5s,box-shadow 1s; text-align:center; width:40px; height:25px; float:left;color:#FFF}div.fenye div:hover{background:#FFF; text-align:center; float:left; color:#000;box-shadow:0 0px 15px #FFF;}div#nowPage{box-shadow:0 0px 15px #FFF;color:#000;background:#FFF;}span.rows{color:#666;};
效果图:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。