2012-02-17 3 views
0

にポストからデータを返します:はどのように私はこのコードを持っている変数のjQuery

function nameToCode(nameGroup) { 

    $.post("execute.php", { something: sendSomething }, function(data) { 

     return data; 

    }); 

} 

variable = nameToCode("some text"); 

しかし、私は変数に取得する唯一のものは、任意のアイデア定義されていませんか?ありがとう。

function nameToCode(nameGroup, callback) { 
    $.post("execute.php", { something: sendSomething }, function(data) { 
      callback(data); 
    }); 
} 

nameToCode("some text", function(variable) 
{ 
    /* use variable here */ 
}); 

答えて

4

結果は、すぐに使用できなくなります。非同期の問題があります。 .postの代わりに.ajaxを使用できます。

function nameToCode(nameGroup, callback) { 
    $.ajax({ 
    url: 'execute.php', 
    type: 'POST', 
    aysnc:false, 
    data: 'something=sendSomething', 
    success: function(data) { 
     return data; 
    } 
}); 

これが機能します。

あなたが意味する、それは動作しませんか、ソリューションが気に入らないのですか?

JavaScriptの作業プロセスです。 jsは同期操作を待機しません。成功関数ブロックで作業を行うか、async:falseパラメータを使用する必要があります。あなたは成功の機能ブロックで何をしたいのかを提案しました。 aysnc:falseを使用すると、ブラウザが短時間ブロックされます。

-1

あなたはこのようにコールバックを取得カント:あなたは少し違ったあなたのコードを構築する必要がありますので、

1

$.postの4番目のパラメータはdataTypeです。 これをJSONに設定すると、戻りデータをJavaScriptオブジェクトまたは配列に解析することができます。あなたのexecute.phpファイルで

$.post(
    "execute.php", 
    { something: sendSomething }, 
    function(data){ return data; }, 
    'json'); 

、あなたは

<?php 
$return_data=array('nameToCode'=>'some text'); 

header('Content-Type: application/json'); 
echo json_encode($return_data); 
exit(); 
ような何かを行うことができます
関連する問題