成功関数でjsonオブジェクトを返す関数の中にajax呼び出しがあります。返されたデータを変数に設定し、回答を検索する必要がありますが見つかりませんでした有用な答え。ajaxからの戻り値とその値を変数に設定
方法1:
私は成功コールバック内のデータを記録する場合は、IM機能を呼び出して、この
var obj = ajaxCall();
私のコードのような変数に返された値を設定することが
function ajaxCall(){
var result;
$.ajax({
url: url_of_my_php_file,
dataType: 'json',
type: 'GET',
contentType: 'application/json',
success: function(data) {
// it returns json Object "data"
result = data;
}
});
return result;
}
のようなものです私のjsonはこれに似ています
[{ collection: "Super Hero", img:"http://img_url.jpg",
heros: [{ id: "111", text: "Iron Man" },
{ id: "123", text: "Superman" },
{ id: "124", text: "Batman" }]
}]
しかし、戻り値は返されません。値の代わりに空文字列が返されます。戻り関数はajaxの成功関数を待機しないためです。
方法2:私は関数がメイン内の値だけが別の配列を返す。この場合、この
function ajaxCall(){
var result;
$.ajax({
url: url_of_my_php_file,
dataType: 'json',
type: 'GET',
contentType: 'application/json',
success: function(data) {
// it returns json Object "data"
callBack(data);
}
});
function callBack(data){
return data;
}
return callBack();
}
のように、成功から関数を呼び出して、そのfuncionから値を返すと試してみました
配列(heros)のみ、外部変数ではなく、どのように修正するのですか?
function ajaxCall(){
var result= $.ajax({
url: url_of_my_php_file,
dataType: 'json',
type: 'GET',
contentType: 'application/json',
success: function(data) {
// it returns json Object "data"
result = data;
}
},(0);
}
に直接AJAX結果を設定するには(私はこれを見ているかわからない)、以下のようなものを見たことがありますか?
もしそうでなければ、結果の変数にその文字列を取得してobjに返す方法はありますか?
更新:
コピーであるか、その後私のために働いていない場合、私はthis linkを試してみましたが、その方法は私のために働いていませんか?
をお試しください! FYIちょうど '成功:コールバック'という名前の関数を呼び出すために無名関数を作成する必要はありません:) – George