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

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

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

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

//分页   参数列表:当前页数(从1开始),总页数,方法名,分页容器的ID
function pageGuide(pageIndex,sumPage,fname,data_body ) {
	// 分页的导航数量,只能为奇数
	var pageGuideCount = 5;
	// 显示导航的中间部分
	var index = parseInt(pageGuideCount / 2);
	//开始索引
	var startIndex = 1;
	//结束索引
	var endindex = pageGuideCount;
	if(sumPage <= pageGuideCount){
		startIndex = 1;
		endindex = sumPage;
	}else{
		if(pageIndex > index){
			var a = sumPage - pageGuideCount;
			var b = pageIndex - index;
			startIndex =  a >= b?(startIndex + b):startIndex + a;
			endindex = a >= b?(pageGuideCount + b):pageGuideCount + a;
		}
	}
	var str = "";
	str += '<div class="layui-Box layui-laypage layui-laypage-default" style="display:inline-block;">';
	// 上一页
	if (pageIndex <= 1) {
		str += "<span class='layui-disabled'>上一页</span>";
	} else {
		str += "<a href='javascript:;' class='layui-laypage-prev' onclick='" + fname + "("
        	+ (pageIndex - 1) + ")'>上一页</a>";
	}
	//首页
	str += "<a href='javascript:"+fname+"(1);' class='"+ (pageIndex<=1?"layui-disabled":"") +"' >首页</a>";
	//前面省略显示
	if(startIndex > 1){
		str += '<a href="javascript:;">···</a>';
	}
	//中间可点击 分页
	for ( var i = startIndex; i <= endindex; i++) {
		if (i == pageIndex) {
			str += "<span class='layui-laypage-curr'><em class='layui-laypage-em' style='text-align:center;'>"+i+"</em></span>";
		} else {
			str += "<a href='javascript:"+fname+"("+ i + ");'>"+ i + "</a>";
		}
	}
	//后面省略显示
	if(endindex < sumPage){
		str += '<a href="javascript:;">···</a>';
	}
	//尾页
	str += "<a href='javascript:" + fname + "("+ sumPage + ");' class='"+(pageIndex>=sumPage?"layui-disabled":"")+"'>尾页</a>";
	// 下一页
	if (pageIndex >= sumPage) {
		str += "<span class='layui-disabled'>下一页</span>";
	} else {
		str += "<a href='javascript:"+fname+ "("+ (pageIndex + 1) + ");' class='layui-laypage-next'>下一页</a>";
	}
	str += "</div>";
	$("#"+data_body+"").html(str);
}
2. 页面调用接口,获取数据,渲染分页插件,示例代码如下:

var pageSize = 5; //每页记录条数
showList(1);
  		
function showList(pageIndex){
  var roleName = $.trim($("[name=roleName]").val());
  var roleMark = $.trim($("[name=roleMark]").val());
  var status = $("[name=status]").val();
  var data = {
  	roleName:roleName,roleMark:roleMark,status:status,sortName:"id",sortOrder:"desc",pageIndex:pageIndex,pageSize:pageSize
  };
  $.ajax({
  	type: 'post',url: 'roleList',data: data,success: function(res){
  	var html = '';
  	if(res.error_code == 200){
  		$.each(res.result,function(i,item){
  			html += '<tr>'+
				'<td>'+
				'<input type="checkBox" lay-filter="itemChoose" name="role_check" lay-skin="primary">'+
				'</td>'+
				'<td>'+item.id+'</td>'+
				'<td>'+item.roleName+'</td>'+
				'<td>'+item.roleMark+'</td>'+
				'<td>'+item.status+'</td>'+
				'<td>'+
				'<a href="" class="layui-btn layui-btn-small">删除</a>'+
				'<a href="" class="layui-btn layui-btn-small">编辑</a>'+
				'</td>'+
				'</tr>';
  		});
  	    //分页
  	    pageNum = Math.ceil(res.total/pageSize);
  	    pageGuide(pageIndex,pageNum,"showList","pageContent");
        }
        $(".role_list").html(html);
        form.render();
     }
  });			
}
其中data是查询条件,pageIndex是当前页数,默认是第1页,返回的结果是分页后的结果,然后再渲染分页插件,pageNum是总页数,form.render()是layui的方法,如果没有使用可以不加。

ajax结合接口 分页插件的更多相关文章

  1. Html5页面二次分享的实现

    这篇文章主要介绍了Html5页面二次分享的实现的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. HTML5跳转小程序wx-open-launch-weapp的示例代码

    这篇文章主要介绍了HTML5跳转小程序wx-open-launch-weapp的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. ios – UIScrollView的平滑自定义分页

    我在UIScrollView中有两个(可能更多)视图,并希望使用分页.当我尝试使用UIScrollView的默认分页选项时出现问题,因为视图具有不同的宽度,无法正确分页.所以我已经实现了一个有效的自定义分页代码.但是,当滚动较慢时,它不会按预期运行.(它回到没有动画的原始位置.)以下是我目前通过uiscrollviewdelegate进行自定义分页的方法我想要的是:是)我有的:解决方法尝试下面的自

  4. ios – 使用子视图控制器分页滚动视图

    使用分页实现水平滚动视图的最佳做法是什么,每页有一个视图控制器?由于iOS5具有用于视图控制器容器/包含的API,因此PageControl示例仍然是实现此功能的最佳方式吗?

  5. ios – Objective C接口,委托和协议

    所以我试图围绕Objctive-C接口,代理和协议.所以我有一个问题:委托是否必须在单独的文件中,或者它是否是您班级中定义的方法?协议就像java接口吗?

  6. 可可触摸 – 启用预览和分页的UICollectionView

    在AppStore中显示搜索结果时,我正在尝试模仿苹果公司的功能.(参考:http://searchengineland.com/apple-app-search-shows-only-one-result-at-a-time-133818)它显示像卡中的详细应用程序信息,并且它被分页.当中间的一个活动卡片和滚动视图的分页行为仍然完整时,我被困在如何使上一张和第二张卡片显示.我已经尝试使用UICo

  7. ios – 启用了内容插入的UIScrollView分页工作很奇怪

    我创建了具有内容插入的UIScrollView.第一次,scrollView.contentOffset.x为-160.0但是奇怪的问题是当我点击scrollView(黄色区域)时,内容偏移x值将重置为0并显示为这样.我尝试过几次,但是点击滚动视图会将内容偏移量重置为0.我该如何防止这种情况?解决方法UIScrollView分页通过滚动与scrollView宽度相同的页面(在您的情况下为480个宽

  8. ios – watchOS错误:控制器的接口描述中的未知属性

    解决方法创建IBOutlet作为WKInterfacePicker的属性,您将不会收到消息.

  9. 泛型 – MonoTouch和支持变体通用接口

    如果是这样,MonoTouch中针对这种情况的推荐解决方法是什么?解决方法这实际上取决于编译器而不是Mono版本.IOW有些东西可能适用于Mono2.10而不适用于MonoTouch6.x.当前版本的MonoTouch附带了smcs编译器和基于2.1的配置文件.较新的功能,如协方差,需要一个完整的4.0编译器和运行时.未来版本的MonoTouch将提供4.0/4.5运行时和编译器.

  10. ios – 用于 – 在Counterparts中的ViewController.swift(接口)文件是什么

    有人可以这么善良并解释这个文件的目的是什么?

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部