首页 > php代码 > php 远程分页类

php 远程分页类

page_total_rows - 每页展示数量 默认值20

$total_rows - 总计数据条目数

$totpages - 总页数计算

$pages_current - 当前页面

利用url参数传递 当前页码 url参数名称 pages

$style - 页码展示样式可以通过外部访问样式属性进行修改

***********************使用方法**********************

//调用该类
$pages = new pages;
//调用该类后请修改数据集总条数
$pages->total_rows = $totrows;
//$pages->main();方法将返回limit需要的2个参数 关联数组的a,b2个元素
$limit = $pages->main();

通过访问不同方法即可展示不同的功能!

*/

<?php
class pages {
    public $page_total_rows = 20; //每页展示数量
    public $total_rows; //总计数据条目数
    public $totpages; //总页数
    public $current_url; //当前页面名称
    private $ask; //是否出现问号
    public $style = '<style type="text/css教程">
.pages_norename{width:50px; height:20px; float:left; background-color:#e3eff3;
 margin-right:5px; text-align:center; line-height:20px; border:1px solid #333333;}
.pages_norename a{display:block; width:50px; height:20px; color:#333333; text-decoration:none;}
.pages_norename a:hover{background-color:#ff9900; color:#ffffff;}
.pages_nore_more{width:auto; height:20px; float:left; margin-right:5px; line-height:20px;
 background-color:#e3eff3; border:1px solid #333333;}
.pages_nore_more a{display:block; width:20px; height:20px; color:#333333;
 text-decoration:none; text-align:center;}
.pages_nore_more a:hover{background-color:#ff9900; color:#ffffff;}
.pages_se{width:auto; height:20px; float:left;}
.pages_se select{margin:0px; padding:0px; font-family:arial,
 helvetica, sans-serif; font-size:12px;}
</style>
';
    //核心计算 并以数组的形式返回查询sql 语句的必须值 limit a,b;
    function main() {
        $this->totpages = ceil($this->total_rows / $this->page_total_rows); //总页数计算
        //获得当前页码-------------------
        if (!isset($_get['pages'])) {
            $this->pages_current = 1;
        } else {
            $this->pages_current = intval($_get['pages']);
            //判断页面不为0
            if ($this->pages_current < 1) {
                $this->pages_current = 1;
            }
            //判断页面不能大于最大页码数量
            if ($this->pages_current > $this->totpages) {
                $this->pages_current = $this->totpages;
            }
            //注销url 参数 pages 和 total_rows 为了更好的传递其他url参数
            if (isset($_get['pages'])) {
                unset($_get['pages']);
            }
            if (isset($_get['total_rows'])) {
                unset($_get['total_rows']);
            }
        }
        //获得当前页码--------------------
        $limit['a'] = $start = ($this->pages_current - 1) * $this->page_total_rows;
        $limit['b'] = $this->page_total_rows;
        //获得当前页面名称
        $urlin = explode('/', $_server['php教程_self']);
        $tot_url = sizeof($urlin);
        $this->current_url = $urlin[$tot_url - 1];
        //获得当前页面传递的url
        if (sizeof($_get) > 0) {
            foreach ($_get as $key => $values) {
                $urlsget.= $key.'='.$values.'&';
            }
            $this->current_url.= '?'.$urlsget;
            $this->ask = '';
        } else {
            $this->ask = '?';
        }
        //输出样式
        echo $this->style;
        return $limit;
    }
    //展示分页
    //1 第一页
    function firstpage() {
        echo '<div class="pages_norename"><a href="'.$this->current_url.'">首页</a></div>';
    }
    //2 上一页
    function prepage() {
        echo '<div class="pages_norename"><a href="'.$this->current_url.$this->ask.'pages='.($this->pages_current - 1).'">上一页</a></div>';
    }
    //3 下一页
    function nextpage() {
        echo '<div class="pages_norename"><a href="'.$this->current_url.$this->ask.'pages='.($this->pages_current + 1).'">下一页</a></div>';
    }
    //4 最后一页
    function lastpage() {
        echo '<div class="pages_norename"><a href="'.$this->current_url.$this->ask.'pages='.($this->totpages).'">尾页</a></div>';
    }
    //中间过渡页
    function morepage() {
        if ($this->pages_current == 1) {
            $newtj = $this->pages_current + 9;
        } elseif ($this->pages_current == 2) {
            $newtj = $this->pages_current + 8;
        } elseif ($this->pages_current == 3) {
            $newtj = $this->pages_current + 7;
        } else {
            $newtj = $this->pages_current + 6;
        }
        for ($i = $this->pages_current - 3; $i <= $newtj; $i++) {
            if ($i == $this->pages_current) {
                $strong = '<strong>';
                $strong2 = '</strong>';
            } else {
                $strong = '';
                $strong2 = '';
            }
            if ($i >= 1) {
                echo '<div class="pages_nore_more"><a href="'.$this->current_url.$this->ask.'pages='.$i.'">'.$strong.$i.$strong2.'</a></div>';
            }
            if ($i >= $this->totpages) {
                break;
            }
        }
    }
    //跳转页面
    function changepage() {
        echo '<div class="pages_se"><select name="dd">';
        for ($i = 1; $i <= $this->totpages; $i++) {
            if ($this->pages_current == $i) {
                $selected = ' selected="selected"';
            } else {
                $selected = '';
            }
            echo '<option value="'.$i.'"'.$selected.'>第'.$i.'页</option>';
        }
        echo '</select></div>';
    }
}
?>

该类可以自动识别 url 参数 避免了一般分页类 丢失url参数问题

样式 可以通过style属性 进行修改

提供 首页 上一页 下一页 尾页 中间 过渡页 跳转菜单功能


教程网址:http://www.phprm.com/code/33690.html

欢迎收藏∩_∩但请保留本文链接。

标签:none

发表留言