javascript无刷新回传问题?

csover8 2009-10-29 03:49:33
需求是这样的:看js代码。

var AllOrNone = ""

var setclassid = ""

var xmlHttpCheck;
try
{
xmlHttpCheck=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttpCheck=new ActiveXObject("Microsoft.XMLHTTP"); //老版本浏览器
}
catch(e)
{
xmlHttpCheck=false;
}
}

if (!xmlHttpCheck && typeof (XMLHttpRequest)!='undefined') //其它浏览器,如FF等...
{
xmlHttpCheck=new XMLHttpRequest();
}


function SetCurrentAll(classid)
{
setclassid = classid;

if(document.getElementById("chkClassid"+classid).checked==true)
{
AllOrNone = true;
}
else
{
AllOrNone = false;
}


if(AllOrNone == true)
{

var urlCheckAll="getboby.asp?classid="+escape(setclassid)+"&r=" + Math.random();

xmlHttpCheckAll.open("Get",urlCheckAll,true);

xmlHttpCheckAll.onreadystatechange=userbacknoteAll;

xmlHttpCheckAll.send(null);



document.getElementById("classid"+classid).className = "aa";
}
else
{
document.getElementById("selectedbabyid"+setclassid).value = "";

document.getElementById("classid"+classid).className = "";
}

}


function userbacknoteAll()
{
if (xmlHttpCheckAll.readyState==4)
{
var response=xmlHttpCheckAll.responseText;

responseSplit = response.split(";");

var currentselectbaby = "";


for(i=0;i<=responseSplit.length-2;i++)
{

strArray = responseSplit[i].split(",");

currentselectbaby = currentselectbaby + "," + strArray[0];

}
//alert(currentselectbaby);

document.getElementById("selectedbabyid"+setclassid).value = currentselectbaby.substring(1);

}
}


有个js中的字符串 a =3102,3251,1256 (说明:a为classid的构造字符串)
现在进行这个字符串的分割后调用上头的函数:

for(var p=0;p<a.length;p++)
{
SetCurrentAll(classidsplit[p]); //这里调用上面的SetCurrentAll

}

这里出错了,只有后头的1256这个有值,其它3102,3251都无值的(数据表里头是有值的),即是打印出currentselectbaby为空值。为何呢?帮我看一下,谢谢了。
...全文
56 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
csover8 2009-10-29
  • 打赏
  • 举报
回复
问题查找出来了,现在我想问的是,数据还没有从服务器上返回完成的时候,怎么做?

function userbacknoteAll()
{
if (xmlHttpCheckAll.readyState==4)
{
if(xmlHttpCheckAll.status==200)
{
var response=xmlHttpCheckAll.responseText;

responseSplit = response.split(";");

var currentselectbaby = "";


for(i=0;i <=responseSplit.length-2;i++)
{

strArray = responseSplit[i].split(",");

currentselectbaby = currentselectbaby + "," + strArray[0];

}

document.getElementById("selectedbabyid"+setclassid).value = currentselectbaby.substring(1);

}
else
{
//这里怎么样写,等待数据从服务器回传回来,再执行
}
}

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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