2013-05-05 121 views
0

如何在ajax函數之外使用ajax請求的結果?在函數外部使用Ajax結果

我發送結果給其他函數,它應該正常工作。

這是我使用的代碼。

function ajaxcall_array(value) { 
    var tmpajaxdata = new Array(); 
    for (var i = 0; i < value.length; ++i){ 
     tmpvar=(value[i]) ; 
     tmpajaxdata.push(tmpvar) ; 
     return tmpajaxdata ; 
     } 
     return tmpajaxdata ; 
     alert(tmpajaxdata); 
     console.debug(tmpajaxdata); 
} 

function ajaxcall(){ 
$.ajax({ 
    url: 'ajax.php',    
    data: "name", 
    type:'GET', 
    async:false, 
    dataType: 'json',     //data format 
    success: function(results)  //on recieve of reply 
    { 
     ajaxdata = ajaxcall_array(results) ; 
     return ajaxdata ; 
    } 
}); 
return ajaxdata ; 
alert(ajaxdata); 
} 
ajaxcall(); 

感謝

+0

這個被要求每週無數次返回的值,並有在'Related'正確的衆多鏈接側邊欄,回答它 – charlietfl 2013-05-05 18:03:06

+0

再一次,AJAX代表** Asynchronous ** JavaScript和XML。所以,我們不能以這種方式從ajax調用返回任何東西。 – 2013-05-05 18:04:29

+0

可能重複[如何從AJAX調用返回響應?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – 2013-05-05 18:05:06

回答

0

這是工作,但您之前alert/console.log你已經在ajaxcall_arrray()

function ajaxcall_array(value) { 
    var tmpajaxdata = new Array(); 
    for (var i = 0; i < value.length; ++i){ 
     tmpvar=(value[i]) ; 
     tmpajaxdata.push(tmpvar) ; 
     return tmpajaxdata ; 
    } 
    return tmpajaxdata ; 

    // HERE ALREADY RETURNED 
    // CODE BELOW NEVER HIT 
    alert(tmpajaxdata); 
    console.debug(tmpajaxdata); 
} 
+0

刪除從循環返回不做。 – 2013-05-05 18:05:11

+0

也許你的ajax返回一個錯誤? – Niels 2013-05-05 18:05:46

+0

你是對的,它的工作。 – 2013-05-05 18:21:37