Ajax做分页
Posted Strive-count
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax做分页相关的知识,希望对你有一定的参考价值。
用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数。
1.设置分页显示显示的样式,显示效果如下。
<style type="text/css"> *{ margin:0px auto; padding:0px; font-family:"微软雅黑"} .b3{ list-style:none; width:400px; height:30px; font-size:16px; text-align:center; line-height:30px; vertical-align:middle; position:relative} .b4{ width:50px; height:30px; float:left; font-size:20px; text-align:center; line-height:30px; vertical-align:middle} .b4:hover{ cursor:pointer; background-color:#FC6} #fy_shang{ font-size:16px; text-align:center; line-height:30px; vertical-align:middle; width:60px; float:left} #fy_xia{ font-size:16px; text-align:center; line-height:30px; vertical-align:middle; width:60px} #fy_shang:hover{ cursor:pointer; background-color:#FC6} #fy_xia:hover{ cursor:pointer; background-color:#FC6} </style>
2.页数显示代码容器,把这段代码放在</table>后面。
<!--分页开始--> <center> <ul class="pagination b3" id="fy_list"> </ul> <input type="hidden" value="1" id="fy_n" /> </center> <!--分页结束-->
3.ajax实现分页的代码
//ajax分页开始 $(document).ready(function(e) { JiaZai(); var zys = 0; //页面加载数据 }) function JiaZai() { var n = $("#fy_n").val();//页数显示框里面显示的页数 $.ajax({ url:"shipinguanlichuli.php", data:{n:n,gjz:""},//n是显示的页数。gjz是表格显示中有关键字查询,这里gjz传一个空值,意思是没有查询条件,查询所有的。 type:"POST", dataType:"JSON", success: function(data){ var s =""; for(var i in data) { s+="<tr><td><input type=\'checkbox\' class=\'qx\' value=\'"+data[i].id+"\' name=\'sc[]\' /></td><td class=\'hidden-xs\'>"+data[i].id+"</td><td>"+data[i].name+"</td><td class=\'hidden-xs\'>"+data[i].details+"</td><td class=\'hidden-xs\'>"+data[i].wprice+"</td><td class=\'hidden-xs\'>"+data[i].dprice+"</td><td class=\'hidden-xs\'>"+data[i].class+"</td><td><a href=\'xiugai.php?c="+data[i].id+"\'>修改</a></td><td><a href=\'shanchuchuli.php?c="+data[i].id+"\' onclick=\\"return confirm(\'确定删除吗?\')\\">删除</a></td></tr>";//拼接表格显示内容 } $("#a22").html(s);//把拼接好的字符串放到要显示的div里面。 } }); //获取分页数(列表) $.ajax({ url:"zyschuli3.php", type:"POST", dataType:"TEXT", success: function(data){ //总页数 var ys = Math.ceil(data/15); zys = ys; var s = "<div><a id=\'fy_shang\' class=\'b4\'>上一页</a></div>"; var dangqian = $("#fy_n").val(); //当前页数 for(var i=dangqian-2;i<=dangqian+2;i++) { if(i>0 && i<=ys) { if(dangqian==i) { s+="<div class=\'b4\' class=\'active\'><a class=\'fy_zhong b4\'>"+i+"</a></div>"; } else { s+="<div class=\'b4\'><a class=\'fy_zhong\'>"+i+"</a></div>" } } } s += "<div><a id=\'fy_xia\' class=\'b4\'>下一页</a></div>"; $("#fy_list").html(s); //给分页列表加事件 JiaShiJian(); } }) //给分页列表加事件的方法 function JiaShiJian() { $("#fy_shang").click(function(){ var n = $("#fy_n").val(); if(n>1) { n--; } else { n=1; } $("#fy_n").val(n); //加载数据 JiaZai(); }) $("#fy_xia").click(function(){ var n = $("#fy_n").val(); if(n<zys) { n++; } else { n=zys; } $("#fy_n").val(n); //加载数据 JiaZai(); }) $(".fy_zhong").click(function(){ var n = $(this).text(); $("#fy_n").val(n); //加载数据 JiaZai(); }) }
4.如果要加上关键字查询功能,现在表格上面加上关键字输入框。
关键字:<input id="guanjianzi" type="text" name="key" />
然后在js代码中多写一步,其实就是重复显示效果的js代码,里面加上条件。下面是分页显示+关键字查询所有的代码。
//ajax分页开始 $(document).ready(function(e) { JiaZai(); var zys = 0; //页面加载数据 }) function JiaZai() { var n = $("#fy_n").val();//页数显示框里面显示的页数 $.ajax({ url:"shipinguanlichuli.php", data:{n:n,gjz:""},//n是显示的页数。gjz是表格显示中有关键字查询,这里gjz传一个空值,意思是没有查询条件,查询所有的。 type:"POST", dataType:"JSON", success: function(data){ var s =""; for(var i in data) { s+="<tr><td><input type=\'checkbox\' class=\'qx\' value=\'"+data[i].id+"\' name=\'sc[]\' /></td><td class=\'hidden-xs\'>"+data[i].id+"</td><td>"+data[i].name+"</td><td class=\'hidden-xs\'>"+data[i].details+"</td><td class=\'hidden-xs\'>"+data[i].wprice+"</td><td class=\'hidden-xs\'>"+data[i].dprice+"</td><td class=\'hidden-xs\'>"+data[i].class+"</td><td><a href=\'xiugai.php?c="+data[i].id+"\'>修改</a></td><td><a href=\'shanchuchuli.php?c="+data[i].id+"\' onclick=\\"return confirm(\'确定删除吗?\')\\">删除</a></td></tr>";//拼接表格显示内容 } $("#a22").html(s);//把拼接好的字符串放到要显示的div里面。 } }); //获取分页数(列表) $.ajax({ url:"zyschuli3.php", type:"POST", dataType:"TEXT", success: function(data){ //总页数 var ys = Math.ceil(data/15); zys = ys; var s = "<div><a id=\'fy_shang\' class=\'b4\'>上一页</a></div>"; var dangqian = $("#fy_n").val(); //当前页数 for(var i=dangqian-2;i<=dangqian+2;i++) { if(i>0 && i<=ys) { if(dangqian==i) { s+="<div class=\'b4\' class=\'active\'><a class=\'fy_zhong b4\'>"+i+"</a></div>"; } else { s+="<div class=\'b4\'><a class=\'fy_zhong\'>"+i+"</a></div>" } } } s += "<div><a id=\'fy_xia\' class=\'b4\'>下一页</a></div>"; $("#fy_list").html(s); //给分页列表加事件 JiaShiJian(); } }) $("#guanjianzi").keyup(function(){ var gjz = $(this).val(); var n = $("#fy_n").val(); $.ajax({ url:"shipinguanlichuli.php", data:{n:n,gjz:gjz}, type:"POST", dataType:"JSON", success: function(data){ var s =""; for(var i in data) { s+="<tr><td><input type=\'checkbox\' class=\'qx\' value=\'"+data[i].id+"\' name=\'sc[]\' /></td><td class=\'hidden-xs\'>"+data[i].id+"</td><td>"+data[i].name+"</td><td class=\'hidden-xs\'>"+data[i].details+"</td><td class=\'hidden-xs\'>"+data[i].wprice+"</td><td class=\'hidden-xs\'>"+data[i].dprice+"</td><td class=\'hidden-xs\'>"+data[i].class+"</td><td><a href=\'xiugai.php?c="+data[i].id+"\'>修改</a></td><td><a href=\'shanchuchuli.php?c="+data[i].id+"\' onclick=\\"return confirm(\'确定删除吗?\')\\">删除</a></td></tr>"; } $("#a22").html(s); } }); //获取分页数(列表) //var guanjianzi = $("#guanjianzi").val(); $.ajax({ url:"zyschuli3.php", data:{gjz:gjz}, type:"POST", dataType:"TEXT", success: function(data){ //总页数 var ys = Math.ceil(data/15); zys = ys; var s = "<li><a id=\'fy_shang\' class=\'b4\'>上一页</a></li>"; var dangqian = $("#fy_n").val(); //当前页数 for(var i=dangqian-2;i<=dangqian+2;i++) { if(i>0 && i<=ys) { if(dangqian==i) { s+="<li class=\'active\'><a class=\'fy_zhong b4\'>"+i+"</a></li>"; } else { s+="<li><a class=\'fy_zhong b4\'>"+i+"</a></li>" } } } s += "<li><a id=\'fy_xia\' class=\'b4\'>下一页</a></li>"; $("#fy_list").html(s); //给分页列表加事件 JiaShiJian(); } }) }); } //给分页列表加事件的方法 function JiaShiJian() { $("#fy_shang").click(function(){ var n = $("#fy_n").val(); if(n>1) { n--; } else { n=1; } $("#fy_n").val(n); //加载数据 JiaZai(); }) $("#fy_xia").click(function(){ var n = $("#fy_n").val(); if(n<zys) { n++; } else { n=zys; } $("#fy_n").val(n); //加载数据 JiaZai(); }) $(".fy_zhong").click(function(){ var n = $(this).text(); $("#fy_n").val(n); //加载数据 JiaZai(); }) } </script>
5.处理页面1 shipinguanlichuli.php
<?php include("./DBDA.class.php"); $db = new DBDA(); $n = $_POST["n"];//获取页数显示框里面的值 $tg = ($n-1)*15;//每页显示15条数据,这里显示的就是当前页的15条数据。 $tj1 = " 1=1 ";//默认条件是个恒成立的,如果没有其他条件就是查询所有的。 if(!empty($_POST["gjz"]))//获取提交的关键字 { $gjz = $_POST["gjz"]; $tj1 = " name like \'%{$gjz}%\' or details like \'%{$gjz}%\' or dprice like \'%{$gjz}%\' or dprice like \'%{$gjz}%\' ";//拼接查询条件 } $sqlsj = "select * from product where {$tj1} limit {$tg},15 "; echo json_encode($db->GuanQuery($sqlsj));
6.处理页面2 zyschuli3.php
<?php include("DBDA.class.php"); $db = new DBDA(); $tj1 = " 1=1 ";//默认条件是个恒成立的,如果没有其他条件就是查询所有的。 if(!empty($_POST["gjz"]))//获取提交的关键字 { $gjz = $_POST["gjz"]; $tj1 = " name like \'%{$gjz}%\' or details like \'%{$gjz}%\' or dprice like \'%{$gjz}%\' or dprice like \'%{$gjz}%\' ";//拼接查询条件 } $sql ="select count(*) from product where {$tj1}";//查询符合条件的数据的总条数 $sj = $db->StrQuery($sql); echo $sj;
以上是关于Ajax做分页的主要内容,如果未能解决你的问题,请参考以下文章
项目一众筹网04_0_角色维护-分页(全部用Ajax来做_ajax默认为异步,但是也可以设置为同步_异步做分页_js会比较多我们的js写到外部测试接口通不通