2011-02-09 15 views
0

私はこれを理解できません。グローバル変数に値が割り当てられません

私はidという名前のグローバル変数を持っています。

私が以下の関数を呼び出すと、msgの値が返されないので、私は底を使用しますalert('inside bottom4 (id) =' + id)。アラートをコメントアウトすると、idは関数を呼び出す前のグローバル変数の値です。

oh btw、alert('after assignment=' + id);には正しい戻り値があります。


var id = 0; 

savetodb(obj); 

alert(id) 

function savetodb(lcalEvent) { 
    var ThingID = parseInt(lcalEvent.userId); 

    $.ajax({ 
     type: "GET", 
     url: "res_update.asp", 
     data: "id=" + lcalEvent.id, 
     success: function (msg) { 
      if (msg.indexOf('following') > 0) { 
       Notices.show('error', msg, { duration: 1000 }); 
       $("#calendar").weekCalendar("refresh"); 
      } else { 
       if (msg != '0') { 
        id = msg++; 
alert('after assignment=' + id); 
       } 
       Notices.show('notice', 'Your reservation has been saved'); 
      } 
     }, 
     error: function (msg) { 
      alert("Data Error: " + msg); 
     } 
    }); 

alert('inside bottom4 (id) =' + id) 
} 

答えて

3

AJAXは非同期です。

successコールバックはコードの残りの部分の後に実行されます。

+0

ありがとうございます。 – roger

+0

ようこそ。この回答は、中空チェックをクリックして受け入れる必要があります。 – SLaks

+0

返品の価値をどのように得ることができますか?道に迷いました。 – roger

関連する問題