PHP+Bootstrap制作动态分页标签

来源:互联网 发布:淘宝整点抢购 编辑:程序博客网 时间:2024/05/17 06:52

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

bootstrap的分页格式:

<ul class="pagination">    <li><a href="#">&laquo;</a></li>    <li class="active"><a href="#">1</a></li>    <li><a href="#">2</a></li>    <li><a href="#">3</a></li>    <li><a href="#">4</a></li>    <li><a href="#">5</a></li>    <li><a href="#">&raquo;</a></li></ul>

PHP动态分页过程;

/** * @param $maxpage  总页数 * @param $page    当前页 * @param string $para  翻页参数(不需要写$page),如http://www.example.com/article.php?page=3&id=1,$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 href="?page=1'.$para.'" >1...</a></li>' : '').            ($page > 1 ? '<li><a href="?page='.($page - 1).$para.'" >&laquo;</a></li>' : '');        for($i = $from; $i <= $to; $i++) {            $multipage .= $i == $page ? '<li class="active"><a href="?page='.$i.$para.'" >'.$i.'</a></li>' : '<li><a href="?page='.$i.$para.'" >'.$i.'</a></li>';        }        $multipage .= ($page < $maxpage ? '<li><a href="?page='.($page + 1).$para.'" >&raquo;</a></li>' : '').            ($to < $maxpage ? '<li><a href="?page='.$maxpage.$para.'" class="last" >...'.$maxpage.'</a></li>' : '');       $multipage .=  ' <li><a 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的分页框大小不一致,有点影响美观了。

0 0
原创粉丝点击