怎样依次显示数据库中表的所有记录?

zhangxinmu 2009-09-03 08:10:54
现在做一个小系统,使用ajax实现。具体开发工具如下:客户端使用html,服务器端使用jsp,数据库SqlServer2000,web服务器tomcat,开发平台eclipse。

现在想要实现这样的效果:客户端定时向服务器端发送xmlhttprequest请求,然后,服务器端返回记录到客户端,每发送一次请求返回一条记录(返回记录用的是json格式),直至将数据库表中所有的记录全部显示在客户端。

这是我的回调函数代码:

function complete()
{ if (req.readyState == 4)
{ isRefreshing = false;

var jsonData = eval("(" + req.responseText + ")");
for (var key in jsonData) {
if(document.getElementById(key)){
document.getElementById(key).innerHTML = jsonData[key];
}
}
}
}

以上代码只能实现显示一条记录,也就是说,后面的记录会覆盖掉前边一条记录,到最后也只是显示一条。

而我要的效果是显示所有的记录。

谢谢大家了!
...全文
228 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxinmu 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rexuenaner929 的回复:]
心在循环中拼接一个字符串,然后把拼接好的字符串一下加入到div层中
[/Quote]

请问怎样加入到div层,麻烦说详细点吧。
这个问题困扰我好几天了,现在不能将数据输出到html页面。

谢谢了!
rexuenaner929 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhangxinmu 的回复:]
引用 7 楼 rexuenaner929 的回复:
心在循环中拼接一个字符串,然后把拼接好的字符串一下加入到div层中


请问怎样加入到div层,麻烦说详细点吧。
这个问题困扰我好几天了,现在不能将数据输出到html页面。

谢谢了!
[/Quote]
我在7楼写上代码了啊,你就给了这么多信息,我也只能说这么多了
zhangxinmu 2009-09-04
  • 打赏
  • 举报
回复
能具体说一下不?
我是刚学这东东,还有太多不懂的。
zp87530 2009-09-04
  • 打赏
  • 举报
回复
一次一条。貌似在哪儿见过。。。。你的div的id要动态才可以吧。。。
zhangxinmu 2009-09-04
  • 打赏
  • 举报
回复
回复9#:
是的。每次返回一条记录,现在的问题是怎样将返回的记录依次显示到html页面,直至显示完毕。
ican_areyou 2009-09-04
  • 打赏
  • 举报
回复
lz你描述清楚点

首先你从数据库返回的是不是每次都是一条记录,如果这样就应该在客户innerHTML之前先获取内容,然后连接之后再innerHTML.

如果从数据库返回的依次增加一条记录,那就建议给<table>节点取个id,像这样:
<table id='stuTable'>
<tr>
<td>姓名 </td>
<td>学号 </td>
</tr>
<tr>
<td id="id"> </td>
<td id="name"> </td>
</tr>
</table>

然后可以拼所有<tr>节点的内容了.然后使用原生的js完成:
document.getElementById("stuTable").appendChild(str);
rexuenaner929 2009-09-03
  • 打赏
  • 举报
回复
心在循环中拼接一个字符串,然后把拼接好的字符串一下加入到div层中

function complete()
{ if (req.readyState == 4)
{ isRefreshing = false;

var jsonData = eval("(" + req.responseText + ")");
var result = "";
for (var key in jsonData) {
result += jsonData[key];
}
if(document.getElementById(key)){
document.getElementById(key).innerHTML = result;
}
}
}

BeenZ 2009-09-03
  • 打赏
  • 举报
回复
比如说js要在window.onload以后调用,你的获得response 要在 readystate==4以后调用
zhangxinmu 2009-09-03
  • 打赏
  • 举报
回复
麻烦说详细点吧!

什么叫加载完毕?

BeenZ 2009-09-03
  • 打赏
  • 举报
回复
HTML没问题,看下response有问题没,没有问题的话看下你调用方法的时候是否加载完了
zhangxinmu 2009-09-03
  • 打赏
  • 举报
回复
已经试过了,出不了结果。
是不是我html代码有错,这是我的代码:
<body>
<h1>学生姓名</h1>

<table>
<tr>
<td>姓名</td>
<td>学号</td>
</tr>
<tr>
<td id="id"></td>
<td id="name"></td>
</tr>
</table>
</body>

大家再帮忙看看吧!
BeenZ 2009-09-03
  • 打赏
  • 举报
回复
改成上面代码
BeenZ 2009-09-03
  • 打赏
  • 举报
回复

function complete()
{ if (req.readyState == 4)
{ isRefreshing = false;

var jsonData = eval("(" + req.responseText + ")");
for (var key in jsonData) {
if(document.getElementById(key)){
document.getElementById(key).innerHTML+ = jsonData[key];
}
}
}
}

81,092

社区成员

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

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