加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

防淘宝带省略号的AJAX分页

发布时间:2020-12-16 01:54:38 所属栏目:百科 来源:网络整理
导读:?php/***防淘宝带省略号的AJAX分页*@paramdate*@authorhany*/classAjaxPage{private$total;//数据表中总记录数private$listRows;//每页显示行数private$limit;//分页参数private$uri;private$pageNum;//总页数private$config=array('header'="个记录","prev"
<?php
/**
*防淘宝带省略号的AJAX分页
*@paramdate
*@authorhany
*/
	classAjaxPage{
		private$total;//数据表中总记录数
		private$listRows;//每页显示行数
		private$limit;//分页参数
		private$uri;
		private$pageNum;//总页数
		private$config=array('header'=>"个记录","prev"=>"上一页","next"=>"下一页","first"=>"首页","last"=>"尾页");
		private$adjacents=3;//两侧显示的页码数量.
	
		/**
		*构造函数
		*@paramunknown$total
		*@paramnumber$listRows
		*@paramstring$pa
		*/
		publicfunction__construct($total,$listRows=10,$pa=""){
			$this->total=$total;
			$this->listRows=$listRows;
			$this->uri=$this->getUri($pa);
			$this->page=!empty($_GET["page"])?intval($_GET["page"]):1;//当前页数
			$this->pageNum=ceil($this->total/$this->listRows);
			$this->limit=$this->setLimit();
		}

		/**
		*设置分页偏移量
		*@returnstring
		*/
		privatefunctionsetLimit(){
			return"Limit".($this->page-1)*$this->listRows.",{$this->listRows}";
		}

		/**
		*获取url地址
		*@paramunknown$pa
		*@returnstring
		*/
		privatefunctiongetUri($pa){
			$url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"],'?')?'':"?").$pa;			
			//解析URL,返回其组成部分
			$parse=parse_url($url);
			//将字符串解析成多个变量					
			if(isset($parse["query"])){
				parse_str($parse['query'],$params);
				unset($params["page"]);//去除url里面的page
				$url=$parse['path'].'?'.http_build_query($params);				
			}

			return$url;
		}

		/**
		*获取一个类的私有成员
		*@paramunknown$args
		*@returnNULL
		*/
		publicfunction__get($args){
			if($args=="limit"){
				return$this->limit;
			}else{
				returnnull;
			}				
		}

		/**
		*首页
		*@returnstring
		*/
		privatefunctionfirst(){
			if($this->page>($this->adjacents+1)){
				return"<ahref='javascript:setPage("{$this->uri}&page=1")'>1</a>&nbsp;";
			}		
			return"";
		}

		/**
		*上一页
		*@returnstring
		*/
		privatefunctionprev(){			
			if($this->page==1){
				return"<a>{$this->config["prev"]}</a>&nbsp;";
			}elseif($this->page==2){				
				return"<ahref='javascript:setPage("{$this->uri}"."")'>{$this->config["prev"]}</a>&nbsp;";
			}else{
				return"<ahref='javascript:setPage("{$this->uri}&page=".($this->page-1)."")'>{$this->config["prev"]}</a>&nbsp;";
			}			
		}

		/**
		*列表
		*@returnstring
		*/
		privatefunctionpageList(){
			$linkPage="";	
			//省略号
			if($this->page>($this->adjacents+2)){
				$linkPage.="<a>...</a>&nbsp;";
			}			
			//pages
			$pmin=($this->page>$this->adjacents)?($this->page-$this->adjacents):1;
			$pmax=($this->page<($this->pageNum-$this->adjacents))?($this->page+$this->adjacents):$this->pageNum;
			for($i=$pmin;$i<=$pmax;$i++){
				if($i==$this->page){
					$linkPage.="<aclass='current'>{$this->page}</a>&nbsp;";
				}elseif($i==1){					
					$linkPage.="<ahref='javascript:setPage("{$this->uri}"."")'>{$i}</a>&nbsp;";
				}else{
					$linkPage.="<ahref='javascript:setPage("{$this->uri}&page={$i}")'>{$i}</a>&nbsp;";
				}
			}			
			//省略号
			if($this->page<($this->pageNum-$this->adjacents-1)){
				$linkPage.="<a>...</a>&nbsp;";
			}			
			return$linkPage;
		}

		/**
		*下一页
		*@returnstring
		*/
		privatefunctionnext(){
			if($this->page<$this->pageNum){
				return"<ahref='javascript:setPage("{$this->uri}&page=".($this->page+1)."")'>{$this->config["next"]}</a>&nbsp;";
			}else{
				return"<a>{$this->config["next"]}</a>&nbsp;";
			}
		}

		/**
		*总页数
		*@returnstring
		*/
		privatefunctiontotal(){		
		return'共'.$this->pageNum.'页,第'.$this->page.'页&nbsp;&nbsp;&nbsp;';
		}
		
		/**
		*尾页
		*@returnstring
		*/
		privatefunctionlast(){					
			if($this->page<($this->pageNum-$this->adjacents)){				
				return"<ahref='javascript:setPage("{$this->uri}&page=".($this->pageNum)."")'>{$this->pageNum}</a>&nbsp;";
			}	
			return"";					
		}

		/**
		*跳转
		*@returnstring
		*/
		privatefunctiongoPage(){
			return'<inputtype="text"onkeydown="javascript:if(event.keyCode==13){varpage=(this.value>'.$this->pageNum.')?'.$this->pageNum.':this.value;setPage(''.$this->uri.'&page='+page+'')}"value="'.$this->page.'"style="width:25px"><inputtype="button"value="GO"onclick="javascript:varpage=(this.previousSibling.value>'.$this->pageNum.')?'.$this->pageNum.':this.previousSibling.value;setPage(''.$this->uri.'&page='+page+'')">';
		}
		
		
		/**
		*获取分页列表
		*@paramunknown$display
		*@returnAmbigous<string,unknown>
		*/
	publicfunctionfpage($display=array(0,1,2,3,4,5)){
		$html[0]=$this->total();
			$html[1]=$this->prev();
			$html[2]=$this->first();
			$html[3]=$this->pageList();
			$html[4]=$this->last();
			$html[5]=$this->next();
			$fpage='';
			foreach($displayas$index){
				$fpage.=$html[$index];
			}
			return$fpage;
		}

	
	}
	
	
	//实例分页类对象		
		$page=newAjaxPage($total,$pagesize);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读