Home  >  Article  >  Backend Development  >  Commonly used PHP package paging tools

Commonly used PHP package paging tools

高洛峰
高洛峰Original
2017-01-16 14:49:451108browse

Paging is basically used by every project, so encapsulate it into a tool class and call it directly in the future. (Although the TP framework is very powerful, it is not a bad idea to seal one yourself.) , which saves time and effort and earns 'work points'.

The paging tool class I sealed is relatively complete. It has the homepage, previous page, next page, last page and an optional number of page numbers (that is, when there are many pages, only the parameters passed in are displayed. (the number of entries), you can also choose whether to use the drop-down page jump function according to your needs.

<?php
/**
 * 分页工具类
 */
 
class page{
 
  /**
   * 返回分页所需字符串
   * @param $pageNum int 显示的页码
   * @param $pageCount int 总的页码数 
   * @param $url string 当前页码路径
   * @param $Count string 页码列表里显示的个数
   * @param $selected bool 是否开启下拉框选择功能。默认不开启
   * return $strpage string 分页字符串
   */
  function showPage($pageNum,$pageCount,$url,$Count = 5,$selected = false){
    $pageMaxVal = $Count - 1;// 页码到达最大时,页码列表里第一个页码与最大页码的差
    $pageMiddleVal = ceil($Count / 2);// 依据需要显示页码个数得到的中间值
    $pageMiddleCha = floor($Count / 2);// 依据需要显示页码个数得到的当前页码与第一个页码的差
 
    // 判断url是否已经存在?
    if(!strpos($url, &#39;?&#39;)){ // 未存在?
      $url .= &#39;?&#39;;
    }else{
      $url .= &#39;&&#39;;
    }
 
    // 首页
    $strpage = "<a href=&#39;{$url}num=1&#39;>首页</a>";
 
    // 上一页
    $preNum = $pageNum > 1 ? $pageNum - 1 : 1;
 
    // 当页码为第一页时取消上一页按钮的功能
    $strpage .= $pageNum == 1 ? "<a class=&#39;unshow&#39;>上一页</a>" : "<a href=&#39;{$url}num={$preNum}&#39;>上一页</a>";
 
    // 显示的页码列表中的第一个页码
    $startPage = $pageNum > $pageMiddleVal ? $pageNum - $pageMiddleCha : 1;
    // 起始页码最大值 = 总页数 - 4
    if($pageCount - $pageMaxVal > 0 && $startPage > $pageCount - $pageMaxVal){
      $startPage = $pageCount - $pageMaxVal;
    }
 
    // 显示的页码列表中的最后一个页码
    $endPage = $startPage<($pageCount - $pageMaxVal) ? $startPage + $pageMaxVal : $pageCount;
 
    // 中间数字页码
    for($i=$startPage;$i<=$endPage;$i++){
      if($i == $pageNum){
        $strpage .= "<span>$i</span>";
      }else{
        $strpage .= "<a href=&#39;{$url}num=$i&#39;>$i</a>";
      }
    }
 
    // 下一页
    $nextNum = $pageNum < $pageCount ? $pageNum + 1 : $pageCount;
 
    // 当页码为最后一页时取消下一页按钮的功能
    $strpage .= $pageNum == $pageCount ? "<a class=&#39;unshow&#39;>下一页</a>" : "<a href=&#39;{$url}num={$nextNum}&#39;>下一页</a>";
 
    // 末页
    $strpage .= "<a href=&#39;{$url}num={$pageCount}&#39;>末页</a>";
 
    // 总页数
    $strpage .= "总页数:{$pageCount}  ";
 
    // 判断是否是否选择页码功能
    if($selected){ // 选择了
      $strpage .= "当前页码:<select onchange=\"location.href=&#39;{$url}num=&#39; + this.value \">";
        for($i = 1; $i <= $pageCount;$i++){
          if($i == $pageNum){
            $strpage .= "<option value=&#39;$i&#39; selected=&#39;selected&#39;>$i</option>";
          }else{
            $strpage .= "<option value=&#39;$i&#39;>$i</option>";
          }
        }
         
      $strpage .= "</select>";
    }
 
    return $strpage;
  }
 
}

The rest of the MySQL knowledge should be posted next. I hope everyone will continue to pay attention.

The above is the entire content of this article. I hope it will be helpful to everyone's learning. I also hope that everyone will support the PHP Chinese website.

For more articles related to commonly used PHP packaging paging tools, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php paging class codeNext article:php paging class code