您现在的位置是:网站首页 > 脚本编程>
thinkphp 分页带有省略号实现方式
简介
thinkphp 默认的分页样式很不好看,分页多了就会出现样式错乱,如何实现分页带有省略号呢?其实方法很简单。这个方法纯天然,无公害。
代码如下:
class IndexAction extends Action {
public function index() { ...
thinkphp 默认的分页样式很不好看,分页多了就会出现样式错乱,如何实现分页带有省略号呢?其实方法很简单。这个方法纯天然,无公害。
代码如下:
class IndexAction extends Action { public function index() { $M = M("Article_21"); $count = $M->count(); import("ORG.Util.Page"); $page = new Page($count, 10); //$showPage = $page->show();//Thinkphp原有的方法 $showPage = $page->shows();//自定义的方法 $list=$M->limit($page->firstRow, $page->listRows)->select();; $this->assign("page", $showPage); $this->assign("list",$list); $this->display(); } }
找到Thinkphp核心包中的分页类
在下面添加一下代码:
public function shows() { $adjacents=2; if(0 == $this->totalRows) return ''; $p = $this->varPage; $nowCoolPage = ceil($this->nowPage/$this->rollPage); // 分析分页参数 if($this->url){ $depr = C('URL_PATHINFO_DEPR'); $url = rtrim(U('/'.$this->url,'',false),$depr).$depr.'__PAGE__'; }else{ if($this->parameter && is_string($this->parameter)) { parse_str($this->parameter,$parameter); }elseif(is_array($this->parameter)){ $parameter = $this->parameter; }elseif(empty($this->parameter)){ unset($_GET[C('VAR_URL_PARAMS')]); $var = !empty($_POST)?$_POST:$_GET; if(empty($var)) { $parameter = array(); }else{ $parameter = $var; } } $parameter[$p] = '__PAGE__'; $url = U('',$parameter); } //上下翻页字符串 $upRow = $this->nowPage-1; $downRow = $this->nowPage+1; // 上一页 if ($upRow>0){ $pages.= "<a href='".str_replace('__PAGE__',$upRow,$url)."' class='prev'>".$this->config['prev']."</a>"; }else{ $pages.= "<a class='prev current'>".$this->config['prev']."</a>"; } //第一页 if($this->nowPage>($adjacents+1)) { $pages.= "<a href='".str_replace('__PAGE__',1,$url)."'>1</a>"; } // 添加省略号 if($this->nowPage>($adjacents+2)) { $pages.= "<a>...</a>"; } // 12345 $pmin = ($this->nowPage>$adjacents) ? ($this->nowPage-$adjacents) : 1; $pmax = ($this->nowPage<($this->totalPages-$adjacents)) ? ($this->nowPage+$adjacents) : $this->totalPages; for($i=$pmin; $i<=$pmax; $i++) { if($i==$this->nowPage) { $pages.= "<a class='current'>".$i."</a>"; }else{ $pages.= "<a href='".str_replace('__PAGE__',$i,$url)."'>".$i."</a>"; } } // 添加省略号 if($this->nowPage < ($this->totalPages-$adjacents-1)) { $pages.= "<a>...</a>"; } // 最后一页 if($this->nowPage<($this->totalPages-$adjacents)) { $pages.= "<a href='".str_replace('__PAGE__',$this->totalPages,$url)."'>".$this->totalPages."</a>"; } // 下一页 if ($downRow <= $this->totalPages){ $pages.= "<a href='".str_replace('__PAGE__',$downRow,$url)."' class='next'>".$this->config['next']."</a>"; }else{ $pages.= "<a class='next current'>".$this->config['next']."</a>"; } return $pages; }
html代码:
<html> <head> <title></title> </head> <style> a{text-decoration:none;} .pages a{ border: 1px solid #ccc; display: inline-block; height: 20px; line-height: 20px; margin: 0 5px; text-align: center; width: 20px; color:#222; background-color:#eee; } .pages >.prev {width:60px;} .pages >.next {width:60px;} .pages >.current{color:red;border: 1px solid red;} .box ul li{list-style:none;} </style> <body> <div> <div class="box"> <ul> <volist name="list" id="v" key="k"> <li>{$k}->{$v.title}</li> </volist> </ul> </div> <div class="pages"> {$page} </div> </div> </body> </html>
效果图:
打赏本站,你说多少就多少

本文地址:https://www.qi522.com/view/88.html
来 源:千奇博客
上一篇:iOS 使用AFNetworking上传单张、多张图片至后台
下一篇:留言寄语