ajax结合接口 分页插件

前端之家收集整理的这篇文章主要介绍了ajax结合接口 分页插件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

利用ajax调用接口数据做分页功能

1. 分页方法,写在公共js里面以供调用代码如下:

因为采用了layui中的样式,所以需要引入layui.css,可以去layui官网下载:http://www.layui.com

如果不想使用layui可以自己定义样式,下面的代码应该都看得懂吧。

  1. //分页 参数列表:当前页数(从1开始),总页数,方法名,分页容器的ID
  2. function pageGuide(pageIndex,sumPage,fname,data_body ) {
  3. // 分页的导航数量,只能为奇数
  4. var pageGuideCount = 5;
  5. // 显示导航的中间部分
  6. var index = parseInt(pageGuideCount / 2);
  7. //开始索引
  8. var startIndex = 1;
  9. //结束索引
  10. var endIndex = pageGuideCount;
  11. if(sumPage <= pageGuideCount){
  12. startIndex = 1;
  13. endIndex = sumPage;
  14. }else{
  15. if(pageIndex > index){
  16. var a = sumPage - pageGuideCount;
  17. var b = pageIndex - index;
  18. startIndex = a >= b?(startIndex + b):startIndex + a;
  19. endIndex = a >= b?(pageGuideCount + b):pageGuideCount + a;
  20. }
  21. }
  22. var str = "";
  23. str += '<div class="layui-Box layui-laypage layui-laypage-default" style="display:inline-block;">';
  24. // 上一页
  25. if (pageIndex <= 1) {
  26. str += "<span class='layui-disabled'>上一页</span>";
  27. } else {
  28. str += "<a href='javascript:;' class='layui-laypage-prev' onclick='" + fname + "("
  29. + (pageIndex - 1) + ")'>上一页</a>";
  30. }
  31. //首页
  32. str += "<a href='javascript:"+fname+"(1);' class='"+ (pageIndex<=1?"layui-disabled":"") +"' >首页</a>";
  33. //前面省略显示
  34. if(startIndex > 1){
  35. str += '<a href="javascript:;">···</a>';
  36. }
  37. //中间可点击 分页
  38. for ( var i = startIndex; i <= endIndex; i++) {
  39. if (i == pageIndex) {
  40. str += "<span class='layui-laypage-curr'><em class='layui-laypage-em' style='text-align:center;'>"+i+"</em></span>";
  41. } else {
  42. str += "<a href='javascript:"+fname+"("+ i + ");'>"+ i + "</a>";
  43. }
  44. }
  45. //后面省略显示
  46. if(endIndex < sumPage){
  47. str += '<a href="javascript:;">···</a>';
  48. }
  49. //尾页
  50. str += "<a href='javascript:" + fname + "("+ sumPage + ");' class='"+(pageIndex>=sumPage?"layui-disabled":"")+"'>尾页</a>";
  51. // 下一页
  52. if (pageIndex >= sumPage) {
  53. str += "<span class='layui-disabled'>下一页</span>";
  54. } else {
  55. str += "<a href='javascript:"+fname+ "("+ (pageIndex + 1) + ");' class='layui-laypage-next'>下一页</a>";
  56. }
  57. str += "</div>";
  58. $("#"+data_body+"").html(str);
  59. }
2. 页面调用接口,获取数据,渲染分页插件,示例代码如下:

  1. var pageSize = 5; //每页记录条数
  2. showList(1);
  3. function showList(pageIndex){
  4. var roleName = $.trim($("[name=roleName]").val());
  5. var roleMark = $.trim($("[name=roleMark]").val());
  6. var status = $("[name=status]").val();
  7. var data = {
  8. roleName:roleName,roleMark:roleMark,status:status,sortName:"id",sortOrder:"desc",pageIndex:pageIndex,pageSize:pageSize
  9. };
  10. $.ajax({
  11. type: 'post',url: 'roleList',data: data,success: function(res){
  12. var html = '';
  13. if(res.error_code == 200){
  14. $.each(res.result,function(i,item){
  15. html += '<tr>'+
  16. '<td>'+
  17. '<input type="checkBox" lay-filter="itemChoose" name="role_check" lay-skin="primary">'+
  18. '</td>'+
  19. '<td>'+item.id+'</td>'+
  20. '<td>'+item.roleName+'</td>'+
  21. '<td>'+item.roleMark+'</td>'+
  22. '<td>'+item.status+'</td>'+
  23. '<td>'+
  24. '<a href="" class="layui-btn layui-btn-small">删除</a>'+
  25. '<a href="" class="layui-btn layui-btn-small">编辑</a>'+
  26. '</td>'+
  27. '</tr>';
  28. });
  29. //分页
  30. pageNum = Math.ceil(res.total/pageSize);
  31. pageGuide(pageIndex,pageNum,"showList","pageContent");
  32. }
  33. $(".role_list").html(html);
  34. form.render();
  35. }
  36. });
  37. }
其中data是查询条件,pageIndex是当前页数,默认是第1页,返回的结果是分页后的结果,然后再渲染分页插件,pageNum是总页数,form.render()是layui的方法,如果没有使用可以不加。

猜你在找的Ajax相关文章