• 全部
  • 问答

ajax的问题,读取服务器返回数据问题

szjq 2006-08-03 06:40:26
我现在把服务器返回的数据处理成:
<div name="a1">aaa</div>
<div name="a2">bbb</div>
<div name="a3">ccc</div>

我用xmlHttpRequest()对象,取得返回数据,responsetext.

页面:
<div name="a1">a</div>
<div name="a2">b</div>
<div name="a3">c</div>

现在我要取得服务器端返回的数据,判断当a1(服务器返回)值为aaa时,把页面上a1(页面)处的初始值显示为"OK",当a2(服务器返回)值为bbb时,把页面上a2(页面)处的初始值显示为"error",当a3(服务器返回)值为ccc时,把页面上a3(页面)处的初始值显示为"c(值不变)".

高手帮我想想办法,怎么实现,谢谢!

...全文
299 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
china2001ok 2006-08-10
小风 007
回复
zhangjun 2006-08-10
使用POST方法最好
回复
szjq 2006-08-10
love007(风中的风):谢谢,我知道怎么弄了
回复
zhangjun 2006-08-09
客户端代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<script language="javascript">
//****************
function ajaxSubmitJson(){
//创建XMLHttpRequest对象
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//创建请求结果处理程序
xmlhttp.onreadystatechange=function(){
if (4==xmlhttp.readyState)
{
if (200==xmlhttp.status)
{
var resp= xmlhttp.responseText;
var Json = eval('(' + resp + ')');
//**************得到a1
var a1 = Json.a1;
if(a1 == "aaa")
{
document.getElementById("a1").innerText = "OK";
}
var b1 = Json.b1;
if (b1 == "bbb")
{
document.getElementById("a2").innerText = "error";
}
var c1 = Json.c1;
//********不等于变,等于不变
if (c1 != "ccc")
{
document.getElementById("a3").innerText = "值变了";
}
}
else
{
alert("error");
}
}
}
//打开连接,true表示异步提交
xmlhttp.open("get", "Json.asp", true);
//发送数据
xmlhttp.send();
}
</script>
<div name="a1" id="a1">a</div>
<div name="a2" id="a2">b</div>
<div name="a3" id="a3">c</div>
<input type="button" name="set" value="setValue" onclick="ajaxSubmitJson();">
</BODY>
</HTML>


//*********服务器代码
<%
rem 设置返回中文
response.charset="GB2312"
rem 返回Json的字符
rem//根据asp代码产生对应的json字符串,建议不用XML.很麻烦的,纯个人意见
Dim str
str = "{a1:""aaa"",b1:""bbb"",c1:""ccc""}"
response.write str
%>
回复
lantersen 2006-08-08
是可以的,比方说,你取到了组织成HTML格式的XML,就可以直接node.innerHTML = //取得的"HTML格式的XML";
回复
szjq 2006-08-08
我当时想的是不用xml,直接用ajax获取div的值 ,然后再把相应的div值更变

今天在书上(ajax in action)看到,可以直接取div的值,然后再显示出来

我先试试
回复
lantersen 2006-08-08
思路应该没什么问题:
1:取得结点数据;
2:更新结点数据;
回复
ajaxnet 2006-08-04
要是用responseText返回的话,需要一行一行的分析你返回的字符串.
最好返回XML,用下面的格式

<?xml version="1.0" encoding="utf-8" ?>
<result>
<a1>aaa</a1>
<a2>bbb</a2>
<a3>ccc</a3>
</result>

然后在回调函数中处理:

var xmlDoc = result.value.documentElement;
var children = xmlDoc.childNodes;
for(var i = 0; i < children.length; i++) {
//alert(children[i].firstChild.nodeValue);
//获取相应的DIV元素,然后设置innerText
}
回复
szjq 2006-08-04
gsh945(太平洋底):是说我的思路有问题???
回复
郭大侠_ 2006-08-04
好像设计思路有些问题
回复
szjq 2006-08-04
ajaxnet() :
你写的
var xmlDoc = result.value.documentElement;
var children = xmlDoc.childNodes;
for(var i = 0; i < children.length; i++) {
//alert(children[i].firstChild.nodeValue);
//获取相应的DIV元素,然后设置innerText
}
取不出来上面的xml中的值.有完整的代码吗?
回复
发帖
Ajax
创建于2007-09-28

5.2w+

社区成员

Web 开发 Ajax
申请成为版主
帖子事件
创建了帖子
2006-08-03 06:40
社区公告
暂无公告