关于ajax返回的json数据在table中分页的问题

milamila26 2016-09-14 03:37:16
在页面上有一个空的表格,里面6个字段

<table id="maintable" width=100% border=1px>
<thead>
<tr style="color: black;">
<th style="text-align: center;width: 60px;">姓名</th>
<th style="text-align: center;width: 170px;">身份证</th>
<th style="text-align: center;width: 40px;">性别</th>
<th style="text-align: center;width: 200px;">企业</th>
<th style="text-align: center;width: 80px;">开始时间</th>
<th style="text-align: center;width: 80px;">截止时间</th>
</tr>
</thead>
<tbody></tbody>
</table>

然后发送了ajax请求到后台,得到了一个json,我用了一个循环然后拼接字符串将json中的数据拼到了表格中

var option = {
async : false,
url : "${pageContext.request.contextPath}/courseSignupListImportPeople.do",
type : 'POST',
dataType : "json",
clearForm : true,
success : function(data) {
var a = data[0];
if ((typeof a) == 'string') {
for ( var i = 0; i < data.length; i++) {
alert(data[i]);
}
} else {
$("#maintable tbody tr").remove();
for ( var i = 0; i < data.length; i++) {
var en = data[i];
$("#maintable").append(
"<tr><td>"
+ en.name
+ "</td><td>"
+ en.identity
+ "</td><td>"
+ en.sex
+ "</td><td>"
+ en.enterprise
+ "</td><td>"
+ en.start_time
+ "</td><td>"
+ en.end_time
+ "</td></tr>");
}
alert("上传成功");
}
},
error : function(data) {
alert("上传失败");
}
};
$("#signupListImportForm").ajaxSubmit(option);

现在的问题是这个json数据太多,我需要给这个表格加分页功能,比如一共返回20条数据,每页显示6条,该在返回的success中怎么做呢???
...全文
492 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
木头海上漂 2016-09-19
  • 打赏
  • 举报
回复
首先所有数据存放在专有对象中,然后通过翻页操作来在新的对象中过滤符合条件的数据进行填充
人鱼传说 2016-09-19
  • 打赏
  • 举报
回复
楼主就是想把excel的内容显示到前端了,即然是这样,何不一次全部显示呢?如果一定要分几页显示,那你把success中的得到的数据,存到一个json变量中,如果resultdata={},在success中用resultdata=data;这样你就可以单 独写一个分页函数,在success中调用它,在其他地方也可以调用它
letMeAlone_ 2016-09-19
  • 打赏
  • 举报
回复
请求的时候一般是想要看第几页,让后台传值回来,你一次性接收所有数据,无论怎么看都是很不合理,占用资源的,所以你也别搞什么复杂的东西,直接写一个普普通通的分页就好了,先请求一次,看看有多少条数据,然后根据你想要每页显示几条来创建分页按钮,点击第几页的时候ajax传参到后台,返回要查询的那一页数据,放上去就好了
milamila26 2016-09-19
  • 打赏
  • 举报
回复
引用 9 楼 u012239465 的回复:
首先所有数据存放在专有对象中,然后通过翻页操作来在新的对象中过滤符合条件的数据进行填充
嗯,我来试试
milamila26 2016-09-19
  • 打赏
  • 举报
回复
引用 8 楼 baronyang 的回复:
楼主就是想把excel的内容显示到前端了,即然是这样,何不一次全部显示呢?如果一定要分几页显示,那你把success中的得到的数据,存到一个json变量中,如果resultdata={},在success中用resultdata=data;这样你就可以单 独写一个分页函数,在success中调用它,在其他地方也可以调用它
一次显示就会导致万一数据过多,页面变得过长。我来试试你的方法,单独写一个js的分页
milamila26 2016-09-18
  • 打赏
  • 举报
回复
引用 5 楼 nai598455803 的回复:
分页要在后台分页的。 你在前台传pagesize 和page 到后台去查询出要分页的记录,通过ajax 返回到前台,在显示。
这是查询分页啊,这个我也知道,我这个不是查询,是解析上传的一个文件
milamila26 2016-09-18
  • 打赏
  • 举报
回复
引用 3 楼 qq_32778999 的回复:
1.后台是sql还是mysql ? 数据库的有查询语句可以输出一定范围的值,让后台给你返回固定的就可以 2.使用jq或其他数据表格,它们中有自动分页的方法,调用就行
查询分页我也会,问题是这不是查询分页,这是上传一个excel文件,将excel一行一行的解析出来,如果是一般的查询分页用pagesize和pageno这个我知道的
nai598455803 2016-09-14
  • 打赏
  • 举报
回复
分页要在后台分页的。 你在前台传pagesize 和page 到后台去查询出要分页的记录,通过ajax 返回到前台,在显示。
jio可 2016-09-14
  • 打赏
  • 举报
回复
引用 2 楼 milamila26 的回复:
[quote=引用 1 楼 u012418098 的回复:] 记录当前第几页,然后乘以每页条数。假入现在是第二页就从1*6开始小标是[5]拿到2*6就拿数组下标是11的数据,当然要哦判断数据的剩余和最终下标比较.也就是数据总量是否是大于结束的下标.如果小于就把数组长度减去1个到最终的下标。
我想知道在success()中应该怎么写,有个什么思路[/quote] 其实前端处理分页是不合理的,一般做法是ajax发送当前页和每页条数让后台帮你计算好数据返回给前端。如果你数据两个很大,有上万百万一次返回时绝对不行的。你考虑使用ajax局部刷新吧
Devin.qu 2016-09-14
  • 打赏
  • 举报
回复
1.后台是sql还是mysql ? 数据库的有查询语句可以输出一定范围的值,让后台给你返回固定的就可以 2.使用jq或其他数据表格,它们中有自动分页的方法,调用就行
milamila26 2016-09-14
  • 打赏
  • 举报
回复
引用 1 楼 u012418098 的回复:
记录当前第几页,然后乘以每页条数。假入现在是第二页就从1*6开始小标是[5]拿到2*6就拿数组下标是11的数据,当然要哦判断数据的剩余和最终下标比较.也就是数据总量是否是大于结束的下标.如果小于就把数组长度减去1个到最终的下标。
我想知道在success()中应该怎么写,有个什么思路
jio可 2016-09-14
  • 打赏
  • 举报
回复
记录当前第几页,然后乘以每页条数。假入现在是第二页就从1*6开始小标是[5]拿到2*6就拿数组下标是11的数据,当然要哦判断数据的剩余和最终下标比较.也就是数据总量是否是大于结束的下标.如果小于就把数组长度减去1个到最终的下标。

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧