PHP+jquery+ajax实现分页
本文实例为大家分享了jqueryajax实现分页的具体代码,供大家参考,具体内容如下
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); });
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数据
最后,附上Mysql表结构
CREATETABLEIFNOTEXISTS`food`( `id`int(11)NOTNULLAUTO_INCREMENT, `title`varchar(100)NOTNULL, `pic`varchar(255)NOTNULL, PRIMARYKEY(`id`) )ENGINE=MyISAMDEFAULTCHARSET=utf8;
精彩专题分享:jquery分页功能操作JavaScript分页功能操作
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。