Bootstrap php制作动态分页标签

在放大镜下,你可以看到每一片雪花都是一幅幅精美的图案:有的是晶莹的薄片,有的像白亮的银针,有的像一把张开的小扇,有的像夜空的星星……

学习了下bootstrap,刚好在用分页,就自己写了一个分页,然后结合bootstrap样式展现。

bootstrap的分页格式:

<ul class="pagination">
  <li><a rel="nofollow noopener noreferrer" href="#">«</a></li>
  <li class="active"><a rel="nofollow noopener noreferrer" href="#">1</a></li>
  <li><a rel="nofollow noopener noreferrer" href="#">2</a></li>
  <li><a rel="nofollow noopener noreferrer" href="#">3</a></li>
  <li><a rel="nofollow noopener noreferrer" href="#">4</a></li>
  <li><a rel="nofollow noopener noreferrer" href="#">5</a></li>
  <li><a rel="nofollow noopener noreferrer" href="#">»</a></li>
</ul>

PHP动态分页过程;

/**
 * @param $maxpage 总页数
 * @param $page  当前页
 * @param string $para 翻页参数(不需要写$page),$para参数就应该设为'&id=1'
 * @return string 返回的输出分页html内容
 */
function multipage($maxpage, $page, $para = '') {
  $multipage = ''; //输出的分页内容
  $listnum = 5;   //同时显示的最多可点击页面

  if ($maxpage < 2) {
    return '';
  }else{
    $offset = 2;
    if ($maxpage <= $listnum) {
      $from = 1;
      $to = $maxpage;
    } else {
      $from = $page - $offset; //起始页
      $to = $from + $listnum - 1; //终止页
      if($from < 1) {
        $to = $page + 1 - $from;
        $from = 1;
        if($to - $from < $listnum) {
          $to = $listnum;
        }
      } elseif($to > $maxpage) {
        $from = $maxpage - $listnum + 1;
        $to = $maxpage;
      }
    }

    $multipage .= ($page - $offset > 1 && $maxpage >= $page ? '<li><a rel="nofollow noopener noreferrer" href="?page=1'.$para.'" >1...</a></li>' : '').
      ($page > 1 ? '<li><a rel="nofollow noopener noreferrer" href="?page='.($page - 1).$para.'" >«</a></li>' : '');

    for($i = $from; $i <= $to; $i++) {
      $multipage .= $i == $page ? '<li class="active"><a rel="nofollow noopener noreferrer" href="?page='.$i.$para.'" >'.$i.'</a></li>' :
   '<li><a rel="nofollow noopener noreferrer" href="?page='.$i.$para.'" >'.$i.'</a></li>';
    }

    $multipage .= ($page < $maxpage ? '<li><a rel="nofollow noopener noreferrer" href="?page='.($page + 1).$para.'" >»</a></li>' : '').
      ($to < $maxpage ? '<li><a rel="nofollow noopener noreferrer" href="?page='.$maxpage.$para.'" class="last" >...'.$maxpage.'</a></li>' : '');
    $multipage .= ' <li><a rel="nofollow noopener noreferrer" href="#" ><input type="text" size="3" onkeydown="if(event.keyCode==13) 
    {self.window.location=\'?page='+this.value+\''.$para.''; return false;}" ></a></li>';


    $multipage = $multipage ? '<ul class="pagination">'.$multipage.'</ul>' : '';
  }

  return $multipage;
}

输出分页结果,如$multipage = multipage(20,1);便可得到如下所示的分页标签了:

有个不完善的地方就是最后的页码自选择框的大小与bootstrap的分页框大小不一致,有点影响美观了。

以上就是Bootstrap php制作动态分页标签。做一个坚强的女子,坦然面对,勇敢体会,酸甜苦辣,各种滋味,忘记消逝的人和事。不能拥有的,懂得放弃,不能碰触的,学会雪藏。与其沉溺过往,不如沐浴晴朗,扔掉悲伤和孤寂,摆脱无助和漠然,不再害怕未知,不必盲目迷茫。更多关于Bootstrap php制作动态分页标签请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
JS获取鼠标点击时的位置

vue、nginx部署后刷新报404错误的解决方法

electron-builder配置项

VUE聊天页面自动滚动到底部

VUE CTRL+ENTER换行,ENTER发送消息