用于ajax動態加載數據的分頁類,分頁事件可以動態添加,去除了a鏈接中的href地址。
- <?php
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: 麥當苗兒<[email protected]><http: www.zjzit.cn=""></http:></[email protected]>
- // +----------------------------------------------------------------------
- namespaceThink;
- classcustomPage{
- public$firstRow;// 起始行數
- public$listRows;// 列表每頁顯示行數
- public$parameter;//<a href="/tags.php/+%B7%D6%D2%B3/" target="_blank"> 分頁</a>跳轉時要帶的參數
- public$totalRows;// 總行數
- public$totalPages;// 分頁總頁面數
- public$rollPage = 6;// 分頁欄每頁顯示的頁數
- public$lastSuffix= true;// 最后一頁是否顯示總頁數
- private$p ='p'//分頁參數名
- private$url =''//當前鏈接URL
- private$nowPage= 1;
- // 分頁顯示定制
- private$config=array(
- 'header'=>'<span class="rows">共 %TOTAL_ROW% 條記錄</span>',
- 'prev' =>'上一頁',
- 'next' =>'下一頁',
- 'first'=>?...',
- 'last' =>'...%TOTAL_PAGE%',
- 'theme'=>'%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',
- );
- /**
- * 架構函數
- * @param array $totalRows 總的記錄數
- * @param array $listRows 每頁顯示記錄數
- * @param array $parameter 分頁跳轉的參數
- */
- publicfunction__construct($totalRows,$listRows=20,$parameter=array()) {
- C('VAR_PAGE') &&$this->p = C('VAR_PAGE');//設置分頁參數名稱
- /* 基礎設置 */
- $this->totalRows =$totalRows;//設置總記錄數
- $this->listRows =$listRows;//設置每頁顯示行數
- $this->parameter =emptyempty($parameter) ?$_GET:$parameter;
- $this->nowPage =emptyempty($_GET[$this->p]) ? 1 :intval($_GET[$this->p]);
- $this->totalPages =ceil($this->totalRows /$this->listRows);//總頁數
- if($this->nowPage>$this->totalPages) {
- $this->nowPage =$this->totalPages ;
- }
- $this->nowPage =$this->nowPage>0 ?$this->nowPage : 1;
- $this->firstRow =$this->listRows * ($this->nowPage - 1);
- }
- /**
- * 定制分頁鏈接設置
- * @param string $name 設置名稱
- * @param string $value 設置值
- */
- publicfunctionsetConfig($name,$value) {
- if(isset($this->config[$name])) {
- $this->config[$name] =$value;
- }
- }
- /**
- * 生成鏈接URL
- * @param integer $page 頁碼
- * @return string
- */
- privatefunctionurl($page){
- returnstr_replace(urlencode('[PAGE]'),$page,$this->url);
- }
- /**
- * 組裝分頁鏈接
- * @return string
- */
- publicfunctionshow() {
- if(0 ==$this->totalRows)return''
- /* 生成URL */
- $this->parameter[$this->p] ='[PAGE]'
- $this->url = U(ACTION_NAME,$this->parameter);
- /* 計算分頁信息 */
- if(!emptyempty($this->totalPages) &&$this->nowPage >$this->totalPages) {
- $this->nowPage =$this->totalPages;
- }
- /* 計算分頁臨時變量 */
- $now_cool_page =$this->rollPage/2;
- $now_cool_page_ceil=ceil($now_cool_page);
- $this->lastSuffix &&$this->config['last'] =$this->totalPages;
- //上一頁
- $up_row=$this->nowPage - 1;
- $up_page=$up_row> 0 ?'<a class="shang" id="'.$up_row.'" href="<a href=" target="_blank" rel="external nofollow">上一頁</a>':''
- //下一頁
- $down_row=$this->nowPage + 1;
- $down_page= ($down_row<=$this->totalPages) ?'<a class="xia" id="'.$down_row.'" href="javascript:;" rel="external nofollow">下一頁</a>':''<!--=$this--->
- //第一頁
- $the_first=''
- if($this->totalPages >$this->rollPage && ($this->nowPage -$now_cool_page) >= 1){
- $the_first='<a class="first" id="1" href="javascript:;" rel="external nofollow">第一頁</a>'
- }
- //最后一頁
- $the_end=''
- //if($this->totalPages > $this->rollPage && ($this->nowPage + $now_cool_page) < $this->totalPages){
- if($this->totalPages >$this->rollPage && ($this->nowPage +$now_cool_page) <$this->totalPages){<!--$this--->
- $the_end='<a class="end" id="'.$this->totalRows.'" href="javascript:;" rel="external nofollow">最后一頁</a>'
- }
- for($i= 1;$i<=$this->rollPage;$i++){<!--=$this--->
- if(($this->nowPage -$now_cool_page) <= 0 ){
- $page=$i;
- }elseif(($this->nowPage +$now_cool_page- 1) >=$this->totalPages){
- $page=$this->totalPages -$this->rollPage +$i;
- }else{
- $page=$this->nowPage -$now_cool_page_ceil+$i;
- }
- if($page> 0 &&$page!=$this->nowPage){
- if($page<=$this->totalPages){<!--=$this--->
- $link_page.= ('
- '.$page.'
- ');
- }else{
- break;
- }
- }else{
- if($page> 0 &&$this->totalPages != 1){
- $link_page.= ('
- '.$page.'
- ');
- }
- }
- }
- if(!emptyempty($link_page))$link_page='
- '.$link_page.'
- '
- //替換分頁內容
- $page_str=str_replace(
- array('%HEADER%','%NOW_PAGE%','%UP_PAGE%','%DOWN_PAGE%','%FIRST%','%LINK_PAGE%','%END%','%TOTAL_ROW%','%TOTAL_PAGE%'),
- array($this->config['header'],$this->nowPage,$up_page,$down_page,$the_first,$link_page,$the_end,$this->totalRows,$this->totalPages),
- $this->config['theme']);
- $page_str= trim($page_str);
- if(!emptyempty($page_str))$page_str.='
- <br> //Vevb.com
- <input value="" type="text"><a href="javascript:;" rel="external nofollow" id="go" class="go">跳轉</a>'
- return$page_str;
- }
- }
新聞熱點
疑難解答
圖片精選