0

ajaxは初めてです。ご容赦ください。私のコードは次のとおりです。

関数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'関数内のグローバル変数である'status'を設定し、' return status'を使用してステータスを返そうとしていますが、初期値のみを返し、saveReportFinished関数の値を返しません。誰か助けてくれたら嬉しいです。よろしくお願いします!

4

1 に答える 1

1

それを行うためのより良い方法は、saveReportFinishedからステータスを返し、グローバルの使用を避けることだと思います。また、渡したのと同じ値を返す場合に、saveReportFinishedメソッドを使用する理由も少し混乱しています...

于 2012-07-11T08:50:45.833 に答える