一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

php 分頁(yè)類 擴(kuò)展代碼

原來(lái)發(fā)表過(guò)一個(gè)脫離數(shù)據(jù)庫(kù)的分頁(yè)類,最近使用的時(shí)候發(fā)現(xiàn)有些時(shí)候搜索的東西過(guò)于大的時(shí)候,采用url傳遞參數(shù)的方式,可能會(huì)有一定的影響或者叫已知的bug,這次做了一些擴(kuò)展,同時(shí)兼容了以前的模式,使用上面很簡(jiǎn)單的,只需要多設(shè)置一個(gè)參數(shù)就可以了代碼如下:
復(fù)制代碼 代碼如下:
<?php
/**
* 功能: 分頁(yè)類,根據(jù)提供的數(shù)據(jù)總量和頁(yè)面大小
* 創(chuàng)建日期:Fri Apr 20 16:45:21 CST 2007
* 最后更新:
* 作者: sanshi <sanshi0815@tom.com>
*/

class pagination
{
    var $result = array();
    var $pVar = "myp";//page參數(shù)分頁(yè)記數(shù)
    var $urlParamStr = ""; //頁(yè)面的所有參數(shù)
    var $sqlMoveNumber = 0; //數(shù)據(jù)的偏移量
    var $is_post = false;

    public function pagination()
    {

    }
    public function set($sum,$pageSize,$page="",$is_post = false)
    {
        $this->is_post = $is_post;
        $this->pVar = defined('PAGE_BAR') ? PAGE_BAR : 'myp' ;
        $url = $_SERVER['php_SELF'].'?'.$_SERVER['QUERY_STRING'];
        //計(jì)算出總頁(yè)數(shù)
        $curPage = $this->getCurPage();

        $temp['sumPage'] = ceil($sum/$pageSize);
        //修改了,頁(yè)碼超出的bug
        if($curPage>$temp['sumPage']) $curPage=$temp['sumPage'];
        $temp['curPage'] = $curPage;
        $temp['nextPage'] = $temp['sumPage'] > $curPage ? ($curPage+1) : $temp['sumPage'];
        $temp['upPage'] = $curPage >1 ? $curPage-1 :1;
        $temp['endPage'] = $temp['sumPage'];
        $this->urlParamStr = $this->_makeUrl($url);
        $temp['urlPageStr'] = ($page=="") ? $this->_makeUrl($url) : $page.$this->urlParamStr;

        $this->sqlMoveNumber = $curPage <2 ? 0 : ($curPage-1)*$pageSize;
        $temp['sqlMoveNumber'] = $this->sqlMoveNumber;
        $temp['rowNo'] = $sum;
        $this->result = $temp;
        return $this->result;
        //print_r($temp);exit();
    }
    public function getSqlMove()
    {
        return $this->sqlMoveNumber;
    }
    public function getFooter()
    {
        $str= "共有 <FONT COLOR=#FF0033>{$this->result['rowNo']}</FONT> 條 <a href='{$this->result['urlPageStr']}{$this->result['upPage']}'";
        if($this->is_post) $str .=" onclick='return sanshi_page_post(this.href,{$this->result['upPage']});' ";
        $str .=" ></a> ";
        $str .=" 當(dāng)前 {$this->result['curPage']} 頁(yè)";
        $str .=" 共有 {$this->result['sumPage']} 頁(yè)";
        $str .=" <a href='{$this->result['urlPageStr']}{$this->result['nextPage']}'";
        if($this->is_post) $str .=" onclick='return sanshi_page_post(this.href,{$this->result['nextPage']});' ";
        $str .=" ></a>";
        return $str;
    }
    public function getJumpPage()
    {
        if($this->is_post)
        {
            $str = " 跳到第 <select name='topage' size='1' onchange='sanshi_page_post(/"{$this->result['urlPageStr']}/"+this.value,this.value)'>/n";
        }else{
            $str = " 跳到第 <select name='topage' size='1' onchange='window.location=/"{$this->result['urlPageStr']}/"+this.value'>/n";
        }
for($i=1;$i<=$this->result['sumPage'];$i++)
{
$str .= ($i==$this->result['curPage']) ? "<option value='$i' selected>$i</option>/n" : "<option value='$i'>$i</option>/n";
}
$str.="</select> 頁(yè)";
         //輸出form表單
        if($this->is_post)
        {
            $str .="<script type="text/Javascript"><!--
            function sanshi_page_post(jump_link,page_no)
            {
                document.getElementById('sanshi_goPage').action = jump_link; document.getElementById('{$this->pVar}').value = page_no;
                document.getElementById('sanshi_goPage').submit();
                return false;
            }

// --></script>";
            $str .="<form name='sanshi_goPage' id='sanshi_goPage' method=post>";
            $str .="<input type=/"hidden/" name='{$this->pVar}' id='{$this->pVar}' value=0>";
            $_POST = isset($_POST) ? $_POST : array();
            foreach($_POST AS $k=>$v)
            {
                $str .="<input type=/"hidden/" name=/"{$k}/" id=/"{$k}/" value=/"{$v}/">";
            }
            $str .="</form>";
        }
return $str;
    }
    public function getCurPage()
    {
        return isset($_GET[$this->pVar]) ? intval($_GET[$this->pVar]) : 1 ;
    }
    //分析出url的參數(shù)返回?后的參數(shù),頁(yè)碼為空 包括問(wèn)號(hào)
    private function _makeUrl($url)
    {
        $arrayUrl=parse_url($url);
        if(isset($arrayUrl['query']))
        {
            $q=$arrayUrl['query'];
            parse_str($q,$qParam);
            //print_r($qParam);
            if(array_key_exists($this->pVar,$qParam))
            {
                foreach ($qParam AS $k=>$v)
                {
                    if($k !=$this->pVar) $temp[$k] = $v;
                }
                $temp[$this->pVar] = "";
                if(function_exists("http_build_query"))
                    return '?'.http_build_query($temp);
                else
                    return '?'.sanshi_http_build_query($temp);
            }else {
                return "?{$q}&{$this->pVar}=";
            }
        }else{
            return "?{$this->pVar}=";
        }

    }
}
function sanshi_http_build_query($a,$b='',$c=0)
{
    if (!is_array($a)) return false;
    foreach ((array)$a as $k=>$v)
    {
        if ($c)
            $k=$b."[".$k."]";
        elseif (is_int($k))
            $k=$b.$k;
        if (is_array($v)||is_object($v))
        {
            $r[]=http_build_query($v,$k,1);
            continue;
        }
        $r[]=$k."=".urlencode($v);
    }
    return implode("&",$r);
}
/*
//print_r($_SERVER);
$p = new pagination();
$p->set(10,2,'thi.php');
echo $p->getFooter();
echo $p->getJumpPage();
*/
?>

php技術(shù)php 分頁(yè)類 擴(kuò)展代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品国产一区二区三区不卡在线 | 免费国产午夜高清在线视频 | 92精品国产自产在线观看48 | 亚洲精品第一页中文字幕 | 日韩成人免费一级毛片 | 成人欧美视频免费看黄黄 | 亚洲美女视频一区 | 九九热亚洲精品综合视频 | 色精品一区二区三区 | 四虎国产在线观看 | 999精品视频 | 全色黄大色大片免费久久老太 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女 | 最近最新中文字幕在线第一页 | 色久悠悠影院 | 久久亚洲网站 | 精品日本一区二区三区在线观看 | 免费国产一区二区三区 | 午夜性色视频 | 高清成年美女黄网站色大 | 无遮挡毛片 | 亚洲综合色就色手机在线观看 | 色综合久久88中文字幕 | 久久精品视频一区 | 亚洲六区 | 亚洲 激情 | 可以看的毛片 | 国产精品久久久亚洲第一牛牛 | 色哟哟色院91精品网站 | 国产激情在线 | 成人免费观看黄a大片夜月 成人免费观看视频 | 免费一区区三区四区 | 国产一区二区三区在线免费 | 成人午夜视频在线观看 | 夜夜未满 18勿进的爽影院 | 国产亚洲美女精品久久久久狼 | 亚洲美女色视频 | 精品国产亚洲一区二区三区 | 在线色国产 | 劲爆欧美第一页 | 中文字幕在线一区二区在线 |