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()
登录后复制
09-15 04:07