分页这个功能在日常开发中是必须可少的,自己私下写了一个ajax实现页面分页的效果,具体代码如下:
第一步,我们得查询到这个数据的总数也就是查询数据库该结果集
$re = M('cg_zs_'.$database) ->where($wherea) ->where('stop','eq','1') ->select();
第二步,我们需要设置每页的条数,例如我设置的事每页的条数保持在五条的样子
//查询所有记录的总数 $num = ceil(count($re)/5);
第三步,我们需要获取这个当前页数,并获得处于当页的结果集和对应的id
$pages_num = !empty($pages)?$pages:1; $min = 5*$pages_num-5; $max = 5*$pages_num; $array = array(); foreach ($re as $k=>$v){ for($i=$min;$i<$max;$i++){ if($k == $i){ $array[$k]['id'] = $re[$k]['id']; } } }
这样我们就知道了处于当前页数的对应的id的一些数据是那些了,然后我会在后台对于前端的分页样式及对应值进行字符串的拼接,以下几种判断我主要针对于分页的几种情况下的判断,第一种是处于十页以下的数据就可以不作其他判断,第二种是处于十页以上的样式,然后在此条件下判断的当前页数所在的一个区间判断,具体代码如下:
$pages = ""; if($num>10){ for($i=1;$i<=$num;$i++){ if(1<=$pages_num and $pages_num<=6){ if($i>=1 and $i<=6){ if($i == $pages_num and $i != 6){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");' class='on'>".$i."</a></li>"; }elseif($i==6){ if($i == $pages_num){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");' class='on'>".$i."</a></li><li>...</li>"; }else{ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li><li>...</li>"; } }else{ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li>"; } }elseif ($i==$num){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li>"; } }elseif(7<=$pages_num and $pages_num<$num-2){ if($i>=1 and $i<=3){ if($i==3){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li><li>...</li>"; }else{ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li>"; } }elseif($i==$pages_num){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");' class='on'>".$i."</a></li><li>...</li>"; }elseif ($i == $num-1 or $i == $num){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li>"; } }elseif ($pages_num>=$num-2 and $pages_num<=$num){ if($i>=1 and $i<=4){ if($i==4){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li><li>...</li>"; }else{ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li>"; } }elseif($i>=$num-2 and $i<=$num){ if($i == $pages_num){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");' class='on'>".$i."</a></li>"; }else{ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li>"; } } } } }else{ for($i=1;$i<=$num;$i++){ if($i == $pages_num){ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");' class='on'>".$i."</a></li>"; }else{ $pages .="<li> <a href='javascript:goSort(".$list_id.",".$level.",".$i.");'>".$i."</a></li>"; } } } //上一页 if(($pages_num-1)>0){ $last = $pages_num-1; }else{ $last = $pages_num; } //下一页 if(($pages_num+1)<=$num){ $next = $pages_num+1; }else{ $next = $pages_num; } $last_pages = "<li> <a href='javascript:goSort(".$list_id.",".$level.",".$last.");'><</a></li>"; $next_pages = "<li> <a href='javascript:goSort(".$list_id.",".$level.",".$next.");'>></a></li>"; if(count($re)>1){ $pages="<ul>".$last_pages.$pages.$next_pages."</ul><div style='clear:both;'></div>"; }else{ $pages=""; } $ids = ""; foreach ($array as $k=>$v){ $ids .= $v['id'].','; } $ids = substr($ids,0,strlen($ids)-1);