2012-07-11 80 views
0

进出口新的阿贾克斯..请多多包涵。我的代码如下:无法设置全局变量的函数内阿贾克斯

功能checkempid(){

var status; 
    xmlHttp=GetXmlHttpObject(); 
    var urlemp="postemployee"; 
    urlemp=urlemp+"?employeeId="+document.PostAvailableBench.employeeId.value; 
    xmlHttp.onreadystatechange=stateChangedemp ; 
    xmlHttp.open("GET",urlemp,true); 
    xmlHttp.send(null); 
    var showdata; 

    function stateChangedemp(){ 
    if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
    showdata = xmlHttp.responseText; 
    alert(showdata); 

    if(showdata.trim()=="available"){ 
     alert("inside if"); 
     saveReportFinished(true); 
    } 
    else{ 
     alert("inside else"); 
     saveReportFinished(false); 
     } 
    } 
    } 

    function saveReportFinished(success) { 
     if (success == true) 
     { 
     status = true; 
     } 
     else 
     { 
     status = false; 
     } 
    } 

    function GetXmlHttpObject(){ 
    var xmlHttp=null; 
    try{ 
     xmlHttp=new XMLHttpRequest(); 
    } 
    catch (e) { 
    try { 
     xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
    catch (e){ 
     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    } 
    return xmlHttp; 
} 

    return status; 

}

我试图设置'状态'这是'saveReportFinished'函数内的全局变量,并试图通过使用'返回状态'返回状态..但它只返回初始值,并且不返回值saveReportFinished函数。如果有人能帮助我,我会很高兴。提前谢谢您!

回答

1

我认为一个更好的方法是从saveReportFinished返回状态并避免使用全局。我也有点困惑,为什么你使用saveReportFinished方法,如果你返回相同的值,你传递...