急!!!!!!哪位有经典的分页源码???像下面这样的
共100页  首页 上一页  1 2 3 4 5 6  下一页  尾页 
分数奖励,最好后面还有下拉菜单可选择跳到第几页

解决方案 »

  1.   

    //分页类
    class page{
     var $pagecount;         //总页数
     var $limit = "";        //分页时用到的limit参数
     var $pagearg = "page";  //分页参数名称
     var $pagesize = 20;     //每页显示记录数
     var $recordcount;       //总记录数
     var $pagenum;           //当前页码
     var $argstr = "";       //GET参数字符串
     var $perpage = 5;       //每次显示页码个数
     var $ar = array("[«]", "[‹]", "[›]", "[»]");
     
     /*
      * 功能:构造函数
      * 参数 $recordcount 为记录总数
      * 参数 $pagesize 为每页显示记录数,默认为20
      * 参数 $perpage 为每次显示页码个数,默认为5
      */
     function page($recordcount, $pagesize = 20, $perpage = 5){
       $this->pagesize = $pagesize;
       $this->recordcount = $recordcount;
       $this->perpage = $perpage;
       $this->pagecount = ceil($recordcount/$pagesize);//总页数
       $this->pagenum = $this->currentpage();//当前页码
       $this->argstr = $this->newarg();//GET参数字符串
       $this->limit = " LIMIT ".($this->pagenum-1)*$pagesize.",".$pagesize;//分页时用到的limit参数
     }
     
     /*
      * 功能:取得当前页码函数
      */
     function currentpage(){
      if(isset($_GET[$this->pagearg])){
       if($_GET[$this->pagearg] <= 0) {
         $page = 1;
       }else if($_GET[$this->pagearg] > $this->pagecount){
         $page = $this->pagecount;
       }else{
         $page = $_GET[$this->pagearg];
       }
      }else {
       $page = 1;
      }
      return $page;
     }
     
     /*
      * 功能:重新整理GET参数
      */
     function newarg(){
      $str = "";
      $urlar = $_GET;
      unset($urlar[$this->pagearg]);
      if($urlar){
       foreach($urlar as $key=>$val){
        if($str == "") {
       $str = "?$key=$val";
     }else {
       $str .= "&$key=$val";
     }
       }
       $str .= "&$this->pagearg=";
      }else{
       $str = "?$this->pagearg=";
      }
      return $str;
     }
     
     /* 
      * 功能:返回MYSQL语句的limit部分代码
      */
     function limit(){
      return $this->limit;
     }
     /*
      * 功能:分页字符输出函数
      */
     function show_page(){
      $trunpage = "&nbsp;共[".$this->recordcount."]条记录┊共[".$this->pagecount."]页&nbsp;";
      $page = $this->pagenum;
      
      //向前翻
      if($page == 1){
       $trunpage .= $this->ar[0]."&nbsp;".$this->ar[1]."&nbsp;";
      }else {
       $trunpage .= '<a href="'.$this->argstr.'1">'.$this->ar[0].'</a>&nbsp;<a href="'.$this->argstr.($page-1).'">'.$this->ar[1].'</a>&nbsp;';
      }
      
      //中间数字翻页
      $numpage = 1;
      while($page - $this->perpage * $numpage > 0) $numpage++;
      $startpage = ($numpage - 1) * $this->perpage;
      $endpage = $this->pagecount < $numpage * $this->perpage ? $this->pagecount : $numpage * $this->perpage;
      for($i = $startpage + 1; $i <= $endpage; $i++){
        $trunpage .= $i != $page ? "<a href=\"".$this->argstr.$i."\">$i</a>&nbsp;" : "<strong>".$i."</strong>&nbsp;";
      }
      
      //向后翻
      if($page == $this->pagecount || $this->pagecount == 0){
       $trunpage .= $this->ar[2]."&nbsp;".$this->ar[3]."&nbsp;";
      }else {
       $trunpage .= '<a href="'.$this->argstr.($page+1).'">'.$this->ar[2].'</a>&nbsp;<a href="'.$this->argstr.$this->pagecount.'">'.$this->ar[3].'</a>&nbsp;';
      }
      
      //跳转
      $select = "<select onchange='location.href=this.options[this.selectedIndex].value'>\n";
      for($i = 1; $i <= $this->pagecount; $i++){
       $select .= "<option value=\"".$this->argstr.$i."\">$i</option>\n";
      }
      $select .= "</select>";
      return $trunpage.$select;
     }
    }
      

  2.   

    http://jsptags.com/tags/navigation/pager/index.jsp
      

  3.   


     [email protected]  我要下面这样的共100页  首页 上一页  1 2 3 4 5 6  下一页  尾页 
    最好后面还有下拉菜单可选择跳到第几页可用的话,绝分献分