前端之家收集整理的这篇文章主要介绍了
防淘宝带省略号的AJAX分页,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<?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> ";
}
return"";
}
/**
*上一页
*@returnstring
*/
privatefunctionprev(){
if($this->page==1){
return"<a>{$this->config["prev"]}</a> ";
}elseif($this->page==2){
return"<ahref='javascript:setPage(\"{$this->uri}"."\")'>{$this->config["prev"]}</a> ";
}else{
return"<ahref='javascript:setPage(\"{$this->uri}&page=".($this->page-1)."\")'>{$this->config["prev"]}</a> ";
}
}
/**
*列表
*@returnstring
*/
privatefunctionpageList(){
$linkPage="";
//省略号
if($this->page>($this->adjacents+2)){
$linkPage.="<a>...</a> ";
}
//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> ";
}elseif($i==1){
$linkPage.="<ahref='javascript:setPage(\"{$this->uri}"."\")'>{$i}</a> ";
}else{
$linkPage.="<ahref='javascript:setPage(\"{$this->uri}&page={$i}\")'>{$i}</a> ";
}
}
//省略号
if($this->page<($this->pageNum-$this->adjacents-1)){
$linkPage.="<a>...</a> ";
}
return$linkPage;
}
/**
*下一页
*@returnstring
*/
privatefunctionnext(){
if($this->page<$this->pageNum){
return"<ahref='javascript:setPage(\"{$this->uri}&page=".($this->page+1)."\")'>{$this->config["next"]}</a> ";
}else{
return"<a>{$this->config["next"]}</a> ";
}
}
/**
*总页数
*@returnstring
*/
privatefunctiontotal(){
return'共'.$this->pageNum.'页,第'.$this->page.'页 ';
}
/**
*尾页
*@returnstring
*/
privatefunctionlast(){
if($this->page<($this->pageNum-$this->adjacents)){
return"<ahref='javascript:setPage(\"{$this->uri}&page=".($this->pageNum)."\")'>{$this->pageNum}</a> ";
}
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);