请问我input提交后,通过ajax,只想刷新页面table的部分,ajax返回的是一个多行tr的html吗?

tianyuping 2012-03-20 06:49:14
然后通过javascipt删掉原来的所有tr,再加入新的tr是这样吗,不太理解这个机制?
...全文
1267 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2012-03-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 tianyuping 的回复:]

恩 xuzuning没明白我意思 我意思是实际ajax不是重新载入了table数据,而是通过回调函数替换了table原来数据是这样吧?
[/Quote]你的理解不完整
ajax 可将服务器返回的 HTML 代码 赋值给目标的 innerHTML
也可以将返回的数据(xml、json)通过代码逐个赋值予目标

具体使用哪种方式,就看你的喜好了
godsolio 2012-03-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xuzuning 的回复:]

使用 ajax 的目的是为了有较好的用户体验

再者说,你觉得是重新载入整个页面快呢,还是只载入一部分快?
[/Quote]

这位大哥貌似在php论坛很有名气啊, 人家一般怎么称呼你呢?
tianyuping 2012-03-24
  • 打赏
  • 举报
回复
恩 呵呵 就是好奇 现在基本都明白了 谢谢诸位
黄袍披身 2012-03-24
  • 打赏
  • 举报
回复
别担心那点效率了,那是在客户端完成的事情.
关键是用户体验比你提交个form 然后刷新整个页面强多了.

[Quote=引用 17 楼 tianyuping 的回复:]

如果一个页面仅有一个table,插入数据刷新,ajax还得装入XMLHttpRequest,还得把responseText赋值给
table , 效率是不是不如直接form提交啊?
[/Quote]
tianyuping 2012-03-24
  • 打赏
  • 举报
回复
如果一个页面仅有一个table,插入数据刷新,ajax还得装入XMLHttpRequest,还得把responseText赋值给
table , 效率是不是不如直接form提交啊?
黄袍披身 2012-03-24
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 solio5 的回复:]

引用 12 楼 xuzuning 的回复:

使用 ajax 的目的是为了有较好的用户体验

再者说,你觉得是重新载入整个页面快呢,还是只载入一部分快?


这位大哥貌似在php论坛很有名气啊, 人家一般怎么称呼你呢?
[/Quote]

小声的:“怪蜀黍”

别说我告诉你的啊...

CSDN镇坛之宝
体能 99 法术 99

tianyuping 2012-03-22
  • 打赏
  • 举报
回复
恩 xuzuning没明白我意思 我意思是实际ajax不是重新载入了table数据,而是通过回调函数替换了table原来数据是这样吧?
xuzuning 2012-03-22
  • 打赏
  • 举报
回复
使用 ajax 的目的是为了有较好的用户体验

再者说,你觉得是重新载入整个页面快呢,还是只载入一部分快?
tianyuping 2012-03-22
  • 打赏
  • 举报
回复
如果数据量非常大,还要不要用ajax呢
tianyuping 2012-03-22
  • 打赏
  • 举报
回复
zy205817啥意思啊?所谓异步刷新就是通过ajax返回数据给table,替换原来table中的数据, 而不是想象中的直接重载刷新table数据, 这样理解对不对?
码无边 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tianyuping 的回复:]

我明白了, 所谓异步刷新就是通过ajax返回数据给table,替换原来table中的数据, 而不是想象中的直接重载刷新table数据 , 是这样吧?
[/Quote]重新载入!
coder 2012-03-21
  • 打赏
  • 举报
回复
test.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.6/jquery.js"></script>

</head>
<table>
<thead>
<tr>
<th>Month</th>
</tr>
</thead>

<tfoot>
<tr>
<td>Sum</td>
</tr>
</tfoot>

<tbody id="content"></tbody>

</table>
<body>

<input type="button" id="submit" value="提交">
<script type="text/javascript">
$("#submit").click(function(){
$.ajax({url: 'p.php',
type: 'GET',
dataType: 'html',
timeout: 1000,

error: function(){alert('Error');},

success: function(result){
$("#content").html(result);
}

});
return false;
});

</script>
</body>
</html>


p.php

<?php
exit("<tr><td>1</td></tr><tr><td>12</td></tr><tr><td>13</td></tr><tr><td>14</td></tr><tr><td>15</td></tr>");




也可以不返回html,返回json到浏览器,用js重组
码无边 2012-03-21
  • 打赏
  • 举报
回复
貌似楼主没把问题叙述清楚!楼主是想做ajax异步刷新页面。还是在刷新的时候添加一行数据???
tianyuping 2012-03-21
  • 打赏
  • 举报
回复
我明白了, 所谓异步刷新就是通过ajax返回数据给table,替换原来table中的数据, 而不是想象中的直接重载刷新table数据 , 是这样吧?
改一下昵称 2012-03-20
  • 打赏
  • 举报
回复
数据由php返回后,你要自己用Js写Ajax的回调函数。简单点说ajax成功获取到了服务器端的数据,也就是你所说的多行<tr>。现在你要写个函数,来处理返回的数据。
xmlhttp.onreadystatechange = function (){
if (xmlhttp.readyState==4 && xmlhttp.status==200) { // 服务器成功返回数据
var old_table = document.getElementByTagName('table')[0];
old_table.innerHTML = xmlhttp.responseText; // 将原来的table内容更换
}
}
参考:http://www.w3school.com.cn/htmldom/prop_tablerow_innerhtml.asp
tianyuping 2012-03-20
  • 打赏
  • 举报
回复
自己写回调函数是什么意思? 这个方法是不用覆盖 tbody 是吗
tianyuping 2012-03-20
  • 打赏
  • 举报
回复
就是刷新页面的table
xuzuning 2012-03-20
  • 打赏
  • 举报
回复
当然可以,只要覆盖 tbody 就可以了
但不知道你想做什么
cangyingaoyou 2012-03-20
  • 打赏
  • 举报
回复
你可以自己写回调函数

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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