2010-12-02 32 views
0
function get_new_project_id() { 
    function subFunction() { 
     $.ajax({ 
      url: 'includes/ajax.php?request=create_untitled_project', 
      success: function(response) { 
      return response; // result is a number like 19 
      } 
     }); 
    } 
    return subFunction(); 
}; 

var resultnumber = get_new_project_id(); 

これはおそらく最も基本的な質問の1つです...なぜ結果の数値は19ですか?どうすれば関数からhtmlやtextの値を返すことができますか?時々私はxmlhttpリクエストオブジェクトを取得します。私はちょうど簡単な番号が返されるようにしたい。javascript関数から返された値を取得する

答えて

2

これは、AJAX呼び出しであるため、success関数が非同期に実行されるためです。したがって、AJAXコールバックの値を返すのは意味がありません。なぜなら、それが含まれている関数が返された後で、多くの場合実行できるからです。あなたは彼らだけが利用できるようになりますので、成功関数内の結果を操作する必要があります。この問題を解決するために

は:

function subFunction() { 
    $.ajax({ 
     url: 'includes/ajax.php?request=create_untitled_project', 
     success: function(response) { 
      doSomethingWithTheResult(response); 
     } 
    }); 
    return 'AJAX request initiated but results will be available later'; 
} 
+0

ありがとうございます、ついにあなたとignacioの提案に基づいて動作しました。 –

2

「AJAX」の最初の「A」"Asynchronous"の略です。機能はまだget_new_project_id()が戻るまでにはまだ実行されていません。この関数は、結果を後で取り出せるように別の場所に結果を置く必要があります。

関連する問題