jQuery+Ajax+PHP无刷新分页
时间:2023-04-02 17:31:32
HTML
下载演示地址:http://www.erdangjiade.com/js...本文使用jQuery+Ajax+PHP+Mysql讲解如何实现Ajax无刷新分页效果通过实例刷新??。
#ul_lists以列表的形式展示数据,信息包括商品图片和标题CSS.lists{宽度:740px;保证金:30px自动0;position:relative}#ul_listsli{float:left;width:220px;height:240px;margin:06px6px;border:1pxsolid#ddd;padding:5px;overflow:hidden}#ul_listsliimg{width:220px;高度:220px;边距:006px}.page{边距:12px020px;text-align:center}.pagespan{边距:5px;font-size:14px}jQuery声明第一个全局变量,稍后在分页中使用。varpage_cur=1;//当前页vartotal_num,page_size,page_total_num;//记录总数,每页条目数,总页数然后通过函数getData()获取当前页数据。我们使用$.ajaxGET方法将参数page以json格式传递给ajax.php。functiongetData(page){//获取当前页面数据$.ajax({type:'GET',url:'ajax.php',data:{'page':page-1},dataType:'json',success:function(json){$("#ul_lists").empty();total_num=json.total_num;//记录总数page_size=json.page_size;//每页页数page_cur=page;//当前pagepage_total_num=json.page_total_num;//总页数varli="";varlist=json.list;$.each(list,function(index,array){//遍历返回jsonli+="
"+array['title']+"";});$("#ul_lists").append(li);},complete:function(){getPageBar();//js生成分页,可以用程序代替},error:function(){alert("数据异常,请检查是否为json格式");}});}每次请求返回的item放在#ul_lists中。当数据加载满后,调用函数getPageBar()产生分页,也可以使用程序实现分页。functiongetPageBar(){//js生成分页if(page_cur>page_total_num)page_cur=page_total_num;//当前页大于最大页数if(page_cur<1)page_cur=1;//当前页数小于1page_str="
Total"+total_num+"Article"+page_cur+"/"+page_total_num+"";if(page_cur==1){//如果是第一页page_str+="
首页上一页";}else{page_str+="
主页上一页";}if(page_cur>=page_total_num){//如果是最后一页page_str+="
下一页最后一页";}else{page_str+="
下一页最后一页";$("#page").html(page_str);}最后,当页面第一次加载时,我们加载第一个页面数据即getData(1),当点击分页栏中的分页链接时,通过getData(page)加载对应页码的数据页page可以在分页的属性data-page中获取。$("#pagea").live('click',function(){//live为future元素添加事件处理程序,不可用bindvarpage=$(this).attr("data-page");//获取当前页面getData(page)});PHPajax.php接收到前端页面的每次ajax请求,根据提交的页码计算总记录数和总页数,读取对应页码下的数据列表,并将结果返回给前端页面JSON格式。include_once('connect.php');$page=intval($_GET['page']);//当前页$total_num=mysql_num_rows(mysql_query("selectidfromgoods"));//总记录数$page_size=6;//每页金额$page_total=ceil($total_num/$page_size);//总页数$page_start=$page*$page_size;$arr=array("total_num"=>$total_num,"page_size"=>$page_size,"page_total_num"=>$page_total,);$query=mysql_query("SELECTid,title,picFROMgoodsORDERBYIDASCLIMIT$page_start,$page_size");while($row=mysql_fetch_array($query)){$arr['list'][]=array('id'=>$row['id'],'title'=>$row['title'],'pic'=>$row['pic'],);}echojson_encode($arr);最后附上goods表结构,下载的压缩包里也有~。CREATETABLEIFNOTEXISTS`goods`(`id`int(8)NOTNULLAUTO_INCREMENT,`title`varchar(80)NOTNULL,`pic`varchar(255)NOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAM默认字符集=utf8;[1]:http://www.erdangjiade.com/js/2.html[2]:/img/bVKyOj下载演示地址:http://www.erdangjiade.com/js..