当前位置: 首页 > 工具软件 > php-ajax > 使用案例 >

PHP实现ajax分页

苍阳成
2023-12-01

分页这个功能在日常开发中是必须可少的,自己私下写了一个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);

 

 

 类似资料: