首页 >php教程 >PHP源码 >Thinkphp实现分页

Thinkphp实现分页

PHP中文网
PHP中文网原创
2016-05-26 08:20:311039浏览

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[&#39;totalPage&#39;] gt 1">
<div class="pagechange">
    <if condition="$page[&#39;nowPage&#39;] gt 1"><a href="{:Q(&#39;p&#39;,($page[&#39;nowPage&#39;]-1))}">上一页</a></if>
    <for start="$page[&#39;start&#39;]" end="$page[&#39;end&#39;]+1">
        <if condition="$i eq $page[&#39;nowPage&#39;]">
            <span class="current">{$i}</span>
            <else/>
            <a href="{:Q(&#39;p&#39;,$i)}">{$i}</a>
        </if>
    </for>
    <if condition="$page[&#39;nowPage&#39;] lt $page[&#39;totalPage&#39;]"><a href="{:Q(&#39;p&#39;,($page[&#39;nowPage&#39;]+1))}">下一页</a></if>
    <input type="text" id="jumpPage" />
    <script>
        var url="{:Q(&#39;p&#39;,($page[&#39;nowPage&#39;]+1))}";
        var nowpage="{$page[&#39;nowPage&#39;]}";
        var totalPage="{$page[&#39;totalPage&#39;]}";
    </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(&#39;del,sequence,channel&#39;,true)
    //重点是这里。$page[&#39;nowPage&#39;]页码。
    //$this->size 显示的条数
    ->page($page[&#39;nowPage&#39;],$this->size)
    ->order(&#39;sequence&#39;)
    ->select()
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn