function ChangeState(state,roomid)
{
if(xmlHttp==null)
createXMLHttpRequest();
var d=new Date();
var url="Handler_ChangeRoomState.ashx?state="+state+"&roomid="+roomid+"&t="+d.getTime();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=function Show()
{
var rs = xmlHttp.readyState;
if( rs==4)
{ var ss = xmlHttp.status;
if(ss==200)
{
var str=xmlHttp.responseText;
if(str=="") { return; }
else
{
//alert("设置完毕");
location=location;
}
}
}
}
xmlHttp.send(null);
}调用以上方法的代码是:
if(obj.key == 'true') //结帐完成,修改状态
{
//debugger
var arrid = new Array();
arrid = obj.id.split(',');
for(var i=0;i<arrid.length;i++)
{
if(arrid[i].toString() != "")
{
ChangeState('2',arrid[i].toString());
}
}
}发生的情况是这样的:
以obj.id = '17,36'为例,i=0时,执行ChangeState('2','17'),即修改ID为17的房间的状态到2,i=1时,执行ChangeState('2','36'),即修改ID为36的房间的状态到2.
但是,状况出现了。如果这样直接编译,运行发现,只修改了17的状态,并没有去修改36的状态,数据库中36房间的数据并无改变。
而如果使用在//debugger位置进行调试,又无奈地发现都执行完成了,数据库中36房间的数据也修改了。请各位朋友看一下呢,真是奇怪啊~我对ajax也完全不熟,学习中~~
{
if(xmlHttp==null)
createXMLHttpRequest();
var d=new Date();
var url="Handler_ChangeRoomState.ashx?state="+state+"&roomid="+roomid+"&t="+d.getTime();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=function Show()
{
var rs = xmlHttp.readyState;
if( rs==4)
{ var ss = xmlHttp.status;
if(ss==200)
{
var str=xmlHttp.responseText;
if(str=="") { return; }
else
{
//alert("设置完毕");
location=location;
}
}
}
}
xmlHttp.send(null);
}调用以上方法的代码是:
if(obj.key == 'true') //结帐完成,修改状态
{
//debugger
var arrid = new Array();
arrid = obj.id.split(',');
for(var i=0;i<arrid.length;i++)
{
if(arrid[i].toString() != "")
{
ChangeState('2',arrid[i].toString());
}
}
}发生的情况是这样的:
以obj.id = '17,36'为例,i=0时,执行ChangeState('2','17'),即修改ID为17的房间的状态到2,i=1时,执行ChangeState('2','36'),即修改ID为36的房间的状态到2.
但是,状况出现了。如果这样直接编译,运行发现,只修改了17的状态,并没有去修改36的状态,数据库中36房间的数据并无改变。
而如果使用在//debugger位置进行调试,又无奈地发现都执行完成了,数据库中36房间的数据也修改了。请各位朋友看一下呢,真是奇怪啊~我对ajax也完全不熟,学习中~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货