ajax无刷新分页类

前端之家收集整理的这篇文章主要介绍了ajax无刷新分页类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP
classPage{



//分页栏每页显示的页数

public$rollPage=10;

//页数跳转时要带的参数

public$parameter;

//默认列表每页显示行数

public$listRows=20;

//起始行数

public$firstRow;

//分页页面数

protected$totalPages;

//总行数

protected$totalRows;

//当前页数

protected$nowPage;

//分页的栏的总页数

protected$coolPages;

//分页显示定制

protected$config=array('header'=>'条记录','prev'=>'上一页','next'=>'下一页','first'=>'首页','last'=>'尾页','theme'=>'%totalRow%%header%%nowPage%/%totalPage%页%upPage%%first%%prePage%%linkPage%%downPage%%nextPage%%end%%ajax%');

//默认分页变量名

protected$varPage;

//分页外层div的id

protected$pagesId;

//分页内容替换目标ID

protected$target;



/**

+----------------------------------------------------------

*架构函数

+----------------------------------------------------------

*@accesspublic

+----------------------------------------------------------

*@paramarray$totalRows总的记录数

*@paramarray$listRows每页显示记录数

*@paramarray$parameter分页跳转的参数

+----------------------------------------------------------

*/

publicfunction__construct($totalRows,$listRows='',$parameter='',$target='',$pagesId=''){

$this->totalRows=$totalRows;

$this->parameter=$parameter;

$this->target=$target;

$this->pagesId=$pagesId;

$this->varPage=C('VAR_PAGE')?C('VAR_PAGE'):'p';

if(!empty($listRows)){

$this->listRows=intval($listRows);

}

$this->totalPages=ceil($this->totalRows/$this->listRows);//总页数

$this->coolPages=ceil($this->totalPages/$this->rollPage);

$this->nowPage=!empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1;

if(!empty($this->totalPages)&&$this->nowPage>$this->totalPages){

$this->nowPage=$this->totalPages;

}

$this->firstRow=$this->listRows*($this->nowPage-1);

}



publicfunctionsetConfig($name,$value){

if(isset($this->config[$name])){

$this->config[$name]=$value;

}

}



/**

+----------------------------------------------------------

*分页显示输出

+----------------------------------------------------------

*@accesspublic

+----------------------------------------------------------

*/

publicfunctionshow(){

if(0==$this->totalRows)

return'';

$p=$this->varPage;

$nowCoolPage=ceil($this->nowPage/$this->rollPage);

$url=$_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?'':"?").$this->parameter;

$parse=parse_url($url);

if(isset($parse['query'])){

parse_str($parse['query'],$params);

unset($params[$p]);

$url=$parse['path'].'?'.http_build_query($params);

}

//上下翻页字符串

$upRow=$this->nowPage-1;

$downRow=$this->nowPage+1;

if($upRow>0){

$upPage="<ahref='".$url."&".$p."=$upRow'>".$this->config['prev']."</a>";

}else{

$upPage="";

}



if($downRow<=$this->totalPages){

$downPage="<ahref='".$url."&".$p."=$downRow'>".$this->config['next']."</a>";

}else{

$downPage="";

}

//<<<>>>

if($nowCoolPage==1){

$theFirst="";

$prePage="";

}else{

$preRow=$this->nowPage-$this->rollPage;

$prePage="<ahref='".$url."&".$p."=$preRow'>上".$this->rollPage."页</a>";

$theFirst="<ahref='".$url."&".$p."=1'>".$this->config['first']."</a>";

}

if($nowCoolPage==$this->coolPages){

$nextPage="";

$theEnd="";

}else{

$nextRow=$this->nowPage+$this->rollPage;

$theEndRow=$this->totalPages;

$nextPage="<ahref='".$url."&".$p."=$nextRow'>下".$this->rollPage."页</a>";

$theEnd="<ahref='".$url."&".$p."=$theEndRow'>".$this->config['last']."</a>";

}

//12345

$linkPage="";

for($i=1;$i<=$this->rollPage;$i++){

$page=($nowCoolPage-1)*$this->rollPage+$i;

if($page!=$this->nowPage){

if($page<=$this->totalPages){

$linkPage.="&nbsp;<ahref='".$url."&".$p."=$page'>&nbsp;".$page."&nbsp;</a>";

}else{

break;

}

}else{

if($this->totalPages!=1){

$linkPage.="&nbsp;<spanclass='current'>".$page."</span>";

}

}

}

//<script>jquery分页</script>

$ajax='';

if($this->target){

$ajax=<<<eco

<script>

jQuery(function($){

$('#{$this->pagesId}a').click(function(){

$.ajax({

url:$(this).attr('href'),dataType:"html",type:"POST",cache:false,success:function(html){

$("#{$this->target}").html(html);

}

});

returnfalse;

});

});

</script>

eco;

}

$pageStr=str_replace(

array(

'%header%','%nowPage%','%totalRow%','%totalPage%','%upPage%','%downPage%','%first%','%prePage%','%linkPage%','%nextPage%','%end%','%ajax%'

),array(

$this->config['header'],$this->nowPage,$this->totalRows,$this->totalPages,$upPage,$downPage,$theFirst,$prePage,$linkPage,$nextPage,$theEnd,$ajax

),$this->config['theme']

);

return$pageStr;

}

}

调用方法:在tp中:

publicfunctionajaxPage(){

$tz=M('MoneyLog');
import('ORG.Util.ajaxpage');
$count=$tz->count();
$page=newPage($count,10,'type=1','ajax_div','ajax_page_div');


$data=$tz->limit($page->firstRow,$page->listRows)->select();
$pagestr=$page->show();
$this->assign('list',$data);
$this->assign('show',$pagestr);
if(IS_AJAX){
exit($this->fetch('list'));
}
$this->display('list');

}

静态页面:

<scripttype="text/javascript"src="/Public/shouye/js/jquery-1.7.1.min.js"></script>
<divid="ajax_div">
<table>
<tr>
<td>性别</td><td>年龄</td><td>单位</td>
</tr>
<?PHPforeach($listas$v){?>
<tr>
<td><?PHPecho$v['total_money'];?></td>
<td><?PHPecho$v['time'];?></td>
<td><?PHPecho$v['ip'];?></td>
</tr>
<?PHP}?>

</table>
<div><divid="ajax_page_div">{$show}</div></div>
</div>
<script>

$("body").delegate("#ajax_page_diva","click",function(){
$.get(this.href,function(html){
$('#ajax_div').html(html);
});
returnfalse;
});
});
</script>
原文链接:https://www.f2er.com/ajax/164311.html

猜你在找的Ajax相关文章