最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php 分頁類 擴展代碼

 更新時間:2009年06月11日 02:48:58   作者:  
采用url傳遞參數的方式,可能會有一定的影響或者叫已知的bug,這次做了一些擴展,同時兼容了以前的模式
原來發(fā)表過一個脫離數據庫的分頁類,最近使用的時候發(fā)現有些時候搜索的東西過于大的時候,采用url傳遞參數的方式,可能會有一定的影響或者叫已知的bug,這次做了一些擴展,同時兼容了以前的模式,使用上面很簡單的,只需要多設置一個參數就可以了代碼如下:
復制代碼 代碼如下:

<?php
/**
* 功能: 分頁類,根據提供的數據總量和頁面大小
* 創(chuàng)建日期:Fri Apr 20 16:45:21 CST 2007
* 最后更新:
* 作者: sanshi <sanshi0815@tom.com>
*/

class pagination
{
    var $result = array();
    var $pVar = "myp";//page參數分頁記數
    var $urlParamStr = ""; //頁面的所有參數
    var $sqlMoveNumber = 0; //數據的偏移量
    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'];
        //計算出總頁數
        $curPage = $this->getCurPage();

        $temp['sumPage'] = ceil($sum/$pageSize);
        //修改了,頁碼超出的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 .=" 當前 {$this->result['curPage']} 頁";
        $str .=" 共有 {$this->result['sumPage']} 頁";
        $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> 頁";
         //輸出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的參數返回?后的參數,頁碼為空 包括問號
    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();
*/
?>

相關文章

  • 微信公眾號開發(fā)之獲取位置信息php代碼

    微信公眾號開發(fā)之獲取位置信息php代碼

    這篇文章主要為大家詳細介紹了微信公眾號開發(fā)之獲取位置信息php代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • zen cart實現訂單中增加paypal中預留電話的方法

    zen cart實現訂單中增加paypal中預留電話的方法

    這篇文章主要介紹了zen cart實現訂單中增加paypal中預留電話的方法,涉及數據庫字段的添加、ipn_create_order_array函數的修改及后臺模型文件的相應修改技巧,需要的朋友可以參考下
    2016-07-07
  • 詳解PHP如何完成驗證碼功能示例

    詳解PHP如何完成驗證碼功能示例

    這篇文章主要介紹了PHP如何完成驗證碼功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Thinkphp的volist標簽嵌套循環(huán)使用教程

    Thinkphp的volist標簽嵌套循環(huán)使用教程

    這篇文章主要介紹了Thinkphp實現volist標簽嵌套循環(huán)的方法,需要的朋友可以參考下
    2014-07-07
  • PHP實現簡易計算器功能

    PHP實現簡易計算器功能

    這篇文章主要為大家詳細介紹了PHP實現簡易計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • PHP實現微信退款功能

    PHP實現微信退款功能

    這篇文章主要為大家詳細介紹了PHP實現微信退款功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • thinkphp制作404跳轉頁的簡單實現方法

    thinkphp制作404跳轉頁的簡單實現方法

    下面小編就為大家?guī)硪黄猼hinkphp制作404跳轉頁的簡單實現方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 使用laravel根據用戶類型來顯示或隱藏字段

    使用laravel根據用戶類型來顯示或隱藏字段

    今天小編就為大家分享一篇使用laravel根據用戶類型來顯示或隱藏字段,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Laravel如何上傳文件實現示例

    Laravel如何上傳文件實現示例

    這篇文章主要為大家介紹了Laravel如何上傳文件的實現示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • php加密解密實用類分享

    php加密解密實用類分享

    加密和解密是一項常規(guī)任務,這里介紹一個加解密類。如果你想在用戶忘記密碼時為他或她找回原來的密碼,那么這個類是個好用的工具
    2014-01-01

最新評論

凤山县| 玛纳斯县| 泰州市| 奈曼旗| 金寨县| 安庆市| 林西县| 嵊州市| 潞城市| 太原市| 石嘴山市| 新津县| 会东县| 会泽县| 莆田市| 广河县| 开鲁县| 阳曲县| 梅河口市| 舟曲县| 图们市| 祥云县| 蓝山县| 金塔县| 庄河市| 健康| 扶余县| 铁岭市| 长顺县| 修武县| 吉安县| 营口市| 杭州市| 象州县| 康乐县| 翁源县| 绥滨县| 上蔡县| 郑州市| 资溪县| 阳春市|