各位高手,请问用ajax怎么传对象呢? 能不能传对象?

wbsmm 2009-03-19 02:54:01
我想用ajax操作 只更新这个div
这个div 主要就针对“thisTest” 这个对象。
其实就是更新thisTest这个对象。
但是 我看XMLHttprequest只有responseText和responseXML
就是说 只能接收Text 和Xml 怎么接收对象呢?

<div id = "TestChangDIV">
<div id="TestNameDIV">
<b>
题目:${thisTest.testName }
</b>
</div>
<br />
<div id="TestAnswerDIV">
<c:forEach items="${thisTest.answers}" var="answer" varStatus="a">
${a.index+1 } :
<input type="checkbox" id="${answer.id }"
name="check${answer.rightOrNot }">
<span id='span${answer.rightOrNot }'>${answer.answerValue} </span>
</input>
<p />
</c:forEach>
</div>
<div id="descriptionDIV">
<table border="1" style="font-size:13px;color:gray">
<tr>
<th>
本题难度
</th>
<th>
做过本题人数
</th>
<th>
做对本题人数
</th>
<th>
本题来源
</th>
<th>
出题老师
</th>
</tr>
<tr>
<td>
${thisTest.difficulty }
</td>
<td>
${thisTest.doneUc }
</td>
<td>
${thisTest.rightUc }
</td>
<td>
<a href="#">
${thisTest.testFrom }
</a>
</td>
<td>
<a href="#">
${thisTest.teacherName }
</a>
</td>
</tr>
</table>
</div>

<div id="answerDIV">
<div id="judgeDIV" style="color:red"></div>
用时:
<span id="timeDIV"></span>

<p />
本题正确答案将以红色字体显示!
<p />
试题详解:${thisTest.testDesc}
</div>
</div>

服务器端如果用 response.getWriter().print("nextTest");
这样发过去的就是text 那要怎么发对象呢?

...全文
594 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjwang006 2009-09-20
  • 打赏
  • 举报
回复
fasdfsadfsd
martin628 2009-03-19
  • 打赏
  • 举报
回复
可以把要返回对象用xml来描述,js通过解析xml进行数据展示
什么都不能 2009-03-19
  • 打赏
  • 举报
回复
dwr 比较接近你的想法,但是还是有差别。
wbsmm 2009-03-19
  • 打赏
  • 举报
回复
一定要用DOM重新载入页面块吗?如果之更改这个对象不行吗?
也就是说,原来thisTest所对应的是test1对象,而我想让它改了变成test2对象行吗?
wbsmm 2009-03-19
  • 打赏
  • 举报
回复
不是太懂呢!那服务器端应该怎么做呢?
zhuyongzhao 2009-03-19
  • 打赏
  • 举报
回复
不难,很简单的。其实responseText和responseXML就是显示内容,你可以读取动态页面里的内容,然后再通过responseText输出,赋值给某个标签里的内容。
发个简单的例子给你参考一下:
/*
*--------------------------------------------------------------------
*创建一个XMLHttp实例
*return object 成功创建返回一个xmlhttp对象实例,否则返回false
*--------------------------------------------------------------------
*/
function CreateAjax()
{
var xmlhttp;
try
{
//Firefox, Opera 8.0+, Safari
xmlhttp=new XMLHttpRequest();
}
catch(e)
{
try
{
//IE6.0+
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
//IE5.5+
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
return false;
}
}
}
return xmlhttp;
}

/*
*--------------------------------------------------------------------
*传输数据
*--------------------------------------------------------------------
*/
/*
function handlestatechange(ListID)
{
var VoteIDContent=document.getElementById("Vote"+ListID+'');

if(xmlhttp.readyState==4) //客户端完成请求
{
if(xmlhttp.status==0 || xmlhttp.status==200) //服务端完成处理并返回数据
{
var ResponseText=unescape(xmlhttp.responseText)
var r=ResponseText.split(",");
if(r[0]=="Vote")
{
alert("每个IP地址每天限投一票,请不要重复投票!");
VoteIDContent.innerHTML=r[1];
}
else
{
VoteIDContent.innerHTML=ResponseText;
alert('您已投票成功!');
}
}
else
{
alert("服务器返回异常!");
top.location.href='index.asp';
}
}
else
{
VoteIDContent.innerHTML='<img src="images/Loading.gif">';
}
return VoteIDContent.innerHTML;
}
*/

function Vote(ListID)
{
if(!ListID)
{
alert("请不要提交非法数据!");
return false;
}
var Send_Url='Vote.asp?ListID='+ListID+'&n='+Math.random()+'';//这里添加了一个参数n,表示为一个随机数,以避免浏览器缓存
xmlhttp=CreateAjax();
xmlhttp.open("get",Send_Url,true);


xmlhttp.onreadystatechange=function()
{
var VoteIDContent=document.getElementById("Vote"+ListID+'');

if(xmlhttp.readyState==4) //客户端完成请求
{
if(xmlhttp.status==0 || xmlhttp.status==200) //服务端完成处理并返回数据
{
var ResponseText=unescape(xmlhttp.responseText)
var r=ResponseText.split(",");
if(r[0]=="VoteOver")
{
alert("每个IP地址每天限投一票,请不要重复投票!");
VoteIDContent.innerHTML=r[1];
}
else if(r[0]=="TimeOver")
{
alert("投票结束!");
VoteIDContent.innerHTML=r[1];
}
else
{
VoteIDContent.innerHTML=ResponseText;
alert('您已投票成功!');
}
}
else
{
alert("服务器返回异常!");
top.location.href='index.asp';
}
}
else
{
VoteIDContent.innerHTML='<img src="images/Loading.gif">';
}
return VoteIDContent.innerHTML;
}
xmlhttp.send(null);
}

wbsmm 2009-03-19
  • 打赏
  • 举报
回复
帮帮忙了~~我真的不会,想入非非!也不知道能不能实现啊!
牙签是竹子的 2009-03-19
  • 打赏
  • 举报
回复

52,797

社区成员

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

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