2014-10-27 112 views
0

我想調用一個通用的ajax函數,它應該返回從PHP腳本返回的值。使用jQuery。然後。然後

function ajaxCall(url, data, returnType) { 
    successData = 0; 
    $.when(
    $.ajax({ 
     type: "POST", 
     url: url, 
     data: data, 
     dataType: returnType, 
     success: function(data) { 
     successData = data; 
     } 
    }) 
).done(function(){ 
    return successData; 
    }); 
    return successData; 
} 

該功能被稱爲上文檔加載兩次:

$(document).ready(function() {  
    $.when(
    ajaxCall("posts/sales.php", "monthly=Call1", "json", "as"), 
    ajaxCall("posts/sales.php", "monthly=Call2", "json", "as") 
).then(function() { 
    // make changes in some table. 
    }); 
}); 

然而,在此基礎上作爲ajax是ASYC,then()部分上方的when()完成之前執行。 我想要的是,如果沒有等待頁面加載,我希望根據從ajax調用返回的內容更改表中的值。

PS。更好的是,如果我可以將來自ajaxCall函數的返回值存儲在某個變量中。

回答

1

閱讀jQuery.when()

function ajaxCall(url, data, returnType) { 
    return $.ajax({ 
     type: "POST", 
     url: url, 
     data: data, 
     dataType: returnType, 
    }); 
} 

$(document).ready(function() { 
    $.when(
     ajaxCall("posts/sales.php", "monthly=Call1", "json", "as"), 
     ajaxCall("posts/sales.php", "monthly=Call2", "json", "as") 
    ).then(function(resultFromFirstCall1, resultFromSecondCall1) { 
     //Do something with result 1 and 2 
    }); 
});