欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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()
相关标签: Thinkphp实现分页