2012-01-21 19 views
-1
$check = ""; 

    $.ajax({ 
     url: "check.php", 
     type: "POST", 
     cache: false, 
     data: $name + "=" + $value, 
     success: function(data){ 
      $check = data; 
      alert($check); 
     } 
    }); 

    alert($check); 

最初のMSGを変更していない "こんにちは" であるグローバル変数は

秒MSGが "ある"なぜ?

+1

「第1」と「第2」は時間シーケンスやコードラインシーケンスについて話していますか?それは大きな違いをもたらします。上記のコードでは、時系列順に、最初のメッセージは空にし、後でajax呼び出しが返されたときは2番目のメッセージは "Hello"にする必要があります。 –

+0

このコードは1回実行されます。 – faressoft

+0

コードラインシーケンス – faressoft

答えて

6

$.ajaxは非同期関数であり、成功応答を受け取ったときにすぐに戻り、successコールバックを呼び出します。

したがって、$checkの値はajaxのコールバックによってまだ変更されていませだからあなたは空の文字列を見るのです。

1

jquery ajax関数のデフォルトはasyncです。実行するdosentは関数の値が返されるのを待ちます。ローカル開発サーバーで作業しているためだと思います。 ajaxポストリクエストが高速で、リクエストをポストしたときにhelloを返すので、最初のアラートメッセージが「Hello」
となり、実行が継続され、ローカル値の返信を返します