2012-02-21 12 views
0

これはjQuery ajaxを使用しており、PHPファイルからデータを取得しています。私はajaxプロシージャの後に値が表示されません

私は最初と2番目の警告でデータを見ることができますが、なぜ3番目の警告から値が見えないのかわかりません。

function getMarkerContent(marker)  { 
      // Fetch data from database   
      var ret = "<ul>"; 
     var temp = ""; 
     var process = ""; 

     $.get("../status.php", function (returnValue) { 
      var json = eval("(" + returnValue + ")"); 
      $.each(json, function (key, state) { 
       obj = state; 
       ret += "<li>" + obj.member_id + ": " + obj.content + "</li>"; 
       temp += obj.member_id + ": " + obj.content + "\n"; 

      }); 
      process = processfunction(temp); 
      alert(temp); // first alert 
      ret += "</ul>"; 
     }); 

     alert(process); // third alert 
    } 
    function processfunction(data) { 

     alert(data); 
     return data; // second alert 
    } 

答えて

2

おめでとうございます!コールバックが存在する理由を知りました。

http://api.jquery.com/jQuery.get/

あなたの第一および第二の警告が.getsuccessコールバック関数内でトリガされ、従って、AJAXメソッドが結果を返した後にのみ呼び出されます。

3回目のアラートはコールバックの外部で発生するため、AJAXメソッドがデータを返す前に発生します。

+0

私はあなたの応答が最初は迷惑メールだと思っていました。 :) – Kristian

+0

返信いただきありがとうございます。コールバックの外部で3番目のアラートが発生するため、データを使用する方法はありません。私はそれを別の機能に戻したい。 – Q123

+0

「成功」コールバック内のコードのみが、AJAXデータが取得された後に*実行されることが保証されています。これは、「非同期」とは、AJAXが実行され、コードの残りの部分が、コールバックを除いて、あなたが待っている間も実行し続けることを意味します。 – Blazemonger

関連する問題