PHP

php怎么写分页?怎么灵活实现分页的方法,快速在thinkphp里面实现分页。 分页就是把大量数据以翻页切换的形式分批次显示,那么php应该怎么去实现它呢?

php怎么写分页?怎么灵活实现分页的方法,快速在thinkphp里面实现分页

作者:木木何兴林 发布时间: 2017-07-27 阅读:


php怎么写分页?怎么灵活实现分页的方法,快速在thinkphp里面实现分页。

分页就是把大量数据以翻页切换的形式分批次显示,那么php应该怎么去实现它呢?且看下面分解



// 分页方法

// $numsize 总数据数量
//$pagesize 分页大小
// $url 前置链接
function page($numsize,$pagesize,$url){
$pagenum=ceil($numsize/$pagesize);//分页数量
// echo "$pagenum";
if(!!I('get.page')){
//当前页参数容错取值
if (is_numeric(I('get.page')) && I('get.page')>=1 && I('get.page')<=$pagenum) {
$thispage=I('get.page');
$prevpage=$thispage>1?$thispage-1:1;
$nextpage=$thispage<$pagenum?$thispage+1:$pagenum;
}else{
// $this->error('参数值超出正常范围!');
$thispage=1;
}
}else{
$thispage=1;
}
$pagestart=1;
$pageend=$pagenum;
if ($pagenum>7) {
$pagestart=$thispage-3;
$pageend=$thispage+3<7?7:$thispage+3;
if ($pageend>$pagenum) {
$pageend=$pagenum;
$pagestart=$pagenum-6;
}
if ($pagestart<1) {
$pagestart=1;
}
}
// echo $pagestart;
if ($pagestart>=2 && $pageend-$pagestart>=1) {
$page[0]['url']='###';
$page[0]['num']='···';
}
for ($i=$pagestart; $i <= $pageend; $i++) { 
$page[$i]['url']=$url.$i;//分页链接
$page[$i]['num']=$i;
}
if ($pagenum-$pageend>=1) {
$page[$pageend+1]['url']='###';
$page[$pageend+1]['num']='···';
}
$date['page']=$page;//
$date['thispage']=$thispage;
$date['prevpage']=$prevpage;
$date['nextpage']=$nextpage;
$date['pagenum']=$pagenum;
return $date;

}


控制器里面调用

$numsize=M('Article')->where($map)->count();//总数据量
$pagesize=5;//分页大小
$pageurk=/Article/list/page/;
$page=page($numsize,$pagesize,$pageurk);
// dump($page);
$this->assign('page',$page['page']);//分页
$this->assign('thispage',$page['thispage']);//当前页
$this->assign('prevpage',$page['prevpage']);//上一页
$this->assign('nextpage',$page['nextpage']);//下一页
$this->assign('pagenum',$page['pagenum']);//总数

模板里面显示如下

<div class="page">
<notempty name="page">
<a href="/Article/index/page/1" class="hover btn">首页</a>
<a href="/Article/index/page/{$prevpage}" class="btn">上一页</a>
<foreach name="page" item="v">
<a href="{$v.url}" class="<if condition="$v['num'] eq $thispage">hover</if>">{$v.num}</a>
</foreach>
<a href="/Article/index/page/{$nextpage}" class="btn">下一页</a>
<a href="/Article/index/page/page/{$pagenum}" class="hover btn">尾页</a>
</notempty>
</div>

这样写分页的好吃显而易见, 非常的灵活,使用起来超简单


文章地址:http://blog.yunzhancms.com/index.php?s=/Article/detail/id/304 欢迎转载,转载时请注明出处

分享到: