当前位置: 移动技术网 > IT编程>开发语言>PHP > 网页的分页下标生成代码(PHP后端方法)

网页的分页下标生成代码(PHP后端方法)

2017年12月12日  | 移动技术网IT编程  | 我要评论

测试图例:

效果图:

实现代码:

 /**
   *
   * @param $page   页码(1至正无穷)
   * @param $num   数据中多上行为一页
   * @param $rows   数据的总行数
   * @param $length  下标的最大长度
   * @return array
   */
  public function pagedate($page, $num , $rows , $length){
    //初始化数据
    $maxpage = 0;         //最大页码
    $minpage = 0;         //最小页码
    $serverpage = 0;        //下拉框中显示的页码
    $pagedata = array();      //全部的页码集合(用户下拉框选择)
    $pageshowdata = array();    //用于显示下标的页码集合
    $page = intval($page);
 
    if($rows == 0){
      return $data = array(
        'page' => $page,
        'maxpage' => $maxpage,
        'minpage' => $minpage,
        'serverpage' => $serverpage,
        'pagedata' => $pagedata,
        'pageshowdata' => $pageshowdata
      );
    }
 
    //得到最大分页和最小分页
    $maxpage = intval($rows / $num);
    $double = $rows % $num;
    if($double > 0.000000001)
    {
      $maxpage += 1;
    }
    $minpage = 1;
    $serverpage = 1;
    //得到页码的全部项目
    for($i = 1; $i <= $maxpage; $i++ ){
      $pagedata[$i] = $i;
    }
    //对页码进行正确性改正
    if($page < $minpage){
      $page = 1;
    }
 
    if($page > $maxpage){
      $page = 1;
    }
    /*生成显示的页码标签*/
      //生成左侧的代码快
      if($page == $minpage){
        $pageshowdata[1] = $page;
      }
      if($page > $minpage){
        $pageshowdata[1] = $minpage;
//        $pageshowdata[2] = $page - 1; // <<
        $pageshowdata[2] = '<<'; // <<
        if($page -2 > $minpage ){
          $pageshowdata[3] = $page - 2;
          $pageshowdata[4] = $page - 1;
        }elseif($page -2 == $minpage){
          $pageshowdata[3] = $page - 1;
        }
        //确定选中的页码代码快
        $pageshowdata[count($pageshowdata) + 1] = $page;
      }
    $count = count($pageshowdata) + 1;
    //生成右侧的代码块
      if($page == $maxpage){
        return $data = array(
          'page' => $page,
          'maxpage' => $maxpage,
          'minpage' => $minpage,
          'serverpage' => $serverpage,
          'pagedata' => $pagedata,
          'pageshowdata' => $pageshowdata
        );
      }
      if($page < $maxpage) {
        if($maxpage - $page >= 2){
          $j = 1;
          for($i = $count; $i <= $length ; $i++){
            $pageshowdata[$i] = $page + $j;
            $j ++;
            if($pageshowdata[$i] == $maxpage -1){
                 break;
              }
          }
        }
 
        $count = count($pageshowdata) + 1;
//        $pageshowdata[$count] = $page + 1; //>>
        $pageshowdata[$count] = '>>';
        $pageshowdata[$count + 1] = $maxpage;
 
        //得到选中的参数
        $serverpage = $pageshowdata[$count-1] + 1;
        if($serverpage > $maxpage){
          $serverpage = 1;
        }
 
        return $data = array(
          'page' => $page,
          'maxpage' => $maxpage,
          'minpage' => $minpage,
          'serverpage' => $serverpage,
          'pagedata' => $pagedata,
          'pageshowdata' => $pageshowdata
        );
      }
  }

本文出自 it985博客

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网