Thinkphp实现分页
程序员文章站
2022-06-10 08:14:57
...
php代码
//生成分页的方法 //obj是需要分页表的实例化对象,limit是当前页左右显示的条数。 //$map为分页时where 的条件。 //$this->size是我自己类下的变量。为每页显示的条数 public function CreatePage($obj,$limit,$map=''){ //总条数 $totalRows=$obj->where($map)->count(); //总页数 $totalPage=(round($totalRows/$limit,0)); //当前页。 $nowPage=I('get.p')?I('get.p'):1; if($nowPage>$this->size){ $start=$nowPage-$this->size; } else{ $start=1; } if($totalPage>($nowPage+$this->size)){ $end=$nowPage+$this->size; } else{ $end=$totalPage; } if($nowPage==$totalPage){ $start=$nowPage-$this->size;$end=$totalPage; } $page['totalRows']=$totalRows; $page['totalPage']=$totalPage; $page['nowPage']=$nowPage; $page['start']=$start; $page['end']=$end; return $page;//返回给调用处。。赋值。
前端展示页
<!-- 组件 pagechangesss --> <if condition="$page['totalPage'] gt 1"> <div class="pagechange"> <if condition="$page['nowPage'] gt 1"><a href="{:Q('p',($page['nowPage']-1))}">上一页</a></if> <for start="$page['start']" end="$page['end']+1"> <if condition="$i eq $page['nowPage']"> <span class="current">{$i}</span> <else/> <a href="{:Q('p',$i)}">{$i}</a> </if> </for> <if condition="$page['nowPage'] lt $page['totalPage']"><a href="{:Q('p',($page['nowPage']+1))}">下一页</a></if> <input type="text" id="jumpPage" /> <script> var url="{:Q('p',($page['nowPage']+1))}"; var nowpage="{$page['nowPage']}"; var totalPage="{$page['totalPage']}"; </script> <a href="javascript:void(0)" onclick="page(url,totalPage,nowpage)">跳转</a> </div> </if>
调用
$page=$this->CreatePage($this->obj,$this->size,$map); //此处为TP的查询操作。 $data=$this->obj ->where($map) ->field('del,sequence,channel',true) //重点是这里。$page['nowPage']页码。 //$this->size 显示的条数 ->page($page['nowPage'],$this->size) ->order('sequence') ->select()
下一篇: PHP标准库 (SPL) 笔记