PHP+JQUEY+AJAX实现分页
2016-12-08 23:40
555 查看
HTML
<divid="list"> <ul></ul> </div> <divid="pagecount"></div>
CSS
#list{width:680px;height:530px;margin:2pxauto;position:relative}
#listulli{float:left;width:220px;height:260px;margin:2px}
#listulliimg{width:220px;height:220px}
#listullip{line-height:22px}
#pagecount{width:500px;margin:10pxauto;text-align:center}
#pagecountspan{margin:4px;font-size:14px}
#listulli#loading{width:120px;height:32px;border:1pxsolid#d3d3d3;
position:absolute;top:35%;left:42%;text-align:center;background:#f7f7f7
url(loading.gif)no-repeat8px8px;-moz-box-shadow:1px1px2pxrgba(0,0,0,.2);
-webkit-box-shadow:1px1px2pxrgba(0,0,0,.2);box-shadow:1px1px2pxrgba(0,0,0,.2);}
jQuery
我们先声明变量,后面的代码要用到以下变量。varcurPage=1;//当前页码
vartotal,pageSize,totalPage;//总记录数,每页显示数,总页数
接下来,我们自定义一个函数:getData(),用来获取当前页数据。函数中,我们利用$.ajax()向后台pages.php发送POST异步请求,将当前页码以JSON格式传递给后台。
//获取数据
functiongetData(page){
$.ajax({
type:'POST',
url:'pages.php',
data:{'pageNum':page-1},
dataType:'json',
beforeSend:function(){
$("#listul").append("<liid='loading'>loading...</li>");//显示加载动画
},
success:function(json){
$("#listul").empty();//清空数据区
total=json.total;//总记录数
pageSize=json.pageSize;//每页显示条数
curPage=page;//当前页
totalPage=json.totalPage;//总页数
varli="";
varlist=json.list;
$.each(list,function(index,array){//遍历json数据列
li+="<li><ahref='#'><imgsrc='"+array['pic']+"'>"+array['title']
+"</a></li>";
});
$("#listul").append(li);
},
complete:function(){//生成分页条
getPageBar();
当点击分页条中的分页链接时,调用getData(page)加载对应页码的数据。
$("#pagecountspana").on('click',function(){
varrel=$(this).attr("rel");
if(rel){
getData(rel);
}
});
},
error:function(){
alert("数据加载失败");
}
});
}
请求成功后并返回数据,将相应的数据附给变量,并将返回的商品数据列表循环展示到对应容器#listul中。当数据完全加载完毕后,调用分页条函数getPageBar()生成分页条。
//获取分页条
functiongetPageBar(){
//页码大于最大页数
if(curPage>totalPage)curPage=totalPage;
//页码小于1
if(curPage<1)curPage=1;
pageStr="<span>共"+total+"条</span><span>"+curPage
+"/"+totalPage+"</span>";
//如果是第一页
if(curPage==1){
pageStr+="<span>首页</span><span>上一页</span>";
}else{
pageStr+="<span><ahref='javascript:void(0)'rel='1'>首页</a></span>
<span><ahref='javascript:void(0)'rel='"+(curPage-1)+"'>上一页</a></span>";
}
//如果是最后页
if(curPage>=totalPage){
pageStr+="<span>下一页</span><span>尾页</span>";
}else{
pageStr+="<span><ahref='javascript:void(0)'rel='"+(parseInt(curPage)+1)+"'>
下一页</a></span><span><ahref='javascript:void(0)'rel='"+totalPage+"'>尾页</a>
</span>";
}
$("#pagecount").html(pageStr);
}
最后,当页面第一次加载时,我们加载第一页数据即getData(1),
$(function(){
getData(1);
});
[/code]
PHP
pages.php接收每次前端页面的ajax请求,根据提交的页码pageNum值,从mysql数据库中获取数据,计算总记录数和总页数,读取对应页码下的数据列表,并将最终结果以JSON格式返回给前端页面。include_once('connect.php');//连接数据库,略过,具体请下载源码查看
$page=intval($_POST['pageNum']);//当前页
$result=mysql_query("selectidfromfood");
$total=mysql_num_rows($result);//总记录数
$pageSize=6;//每页显示数
$totalPage=ceil($total/$pageSize);//总页数
$startPage=$page*$pageSize;//开始记录
//构造数组
$arr['total']=$total;
$arr['pageSize']=$pageSize;
$arr['totalPage']=$totalPage;
$query=mysql_query("selectid,title,picfromfoodorderbyidasclimit
$startPage,$pageSize");//查询分页数据
while($row=mysql_fetch_array($query)){
$arr['list'][]=array(
'id'=>$row['id'],
'title'=>$row['title'],
'pic'=>$row['pic'],
);
}
echojson_encode($arr);//输出JSON数据
[/code]
最后,附上Mysql表结构
CREATETABLEIFNOTEXISTS`food`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`title`varchar(100)NOTNULL,
`pic`varchar(255)NOTNULL,
PRIMARYKEY(`id`)
)ENGINE=MyISAMDEFAULTCHARSET=utf8;
相关文章推荐
- PHP+JQUEY+AJAX实现分页
- PHP+JQUEY+AJAX实现分页
- PHP+JQUEY+AJAX实现分页
- PHP+JQUEY+AJAX实现分页【转】
- PHP+JQUEY+AJAX实现分页
- PHP+JQUEY+AJAX实现分页
- php jQuery . Ajax 实现局部刷新分页
- jQuery+Ajax+PHP+Mysql实现分页显示数据
- ajax+js+dom+json+php+mysql实现仿百度、google的分页效果
- php---mysql+ajax 表格(table)分页实现
- jQuery+Ajax+PHP+Mysql实现分页显示数据
- php+ajax+jquery插件实现分页
- PHP+jQuery实现Ajax分页效果:jPaginate插件的应用
- PHP+jQuery实现Ajax分页效果:jPaginate插件的应用
- jQuery+Ajax+PHP+Mysql实现分页显示数据
- jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
- PHP+jQuery实现Ajax分页效果:jPaginate插件的应用
- ajax+js+dom+php+mysal实现仿百度、Google的超强分页
- ajax+js+dom+php+mysal实现仿百度、Google的超强分页
- ajax+js+dom+json+php+mysql实现仿百度、google的分页效果