0
我試圖讀p_info
函數返回從函數getproductInfo
包含ajax調用,但我得到未定義的值。我使用回調函數來實現這一點,但仍然無法正常工作。我錯在哪裏?使用ajax和回調函數向函數傳遞/返回值
$(document).ready(function() {
function successCallback(data)
{
var name = data.name;
var image = data.image;
var link = data.link;
var product_info = [name, image, link];
console.log(product_info); // Correct: shows my product_info array
return product_info;
}
function getProductInfo(prodId, successCallback) {
$.ajax({
type: "POST",
url: "getProductInfo.php",
data: "id=" + prodId,
dataType: "json",
success: function(data) {
var p_info = successCallback(data);
console.log(p_info); // Correct: shows my product_info array
return p_info;
},
error: function()
{
alert("Error getProductInfo()...");
}
});
return p_info; // Wrong: shows "undefined" value
}
var p_info = getProductInfo(12, successCallback);
console.log(p_info); // Wrong: shows an empty value
});
您在成功回調中聲明'p_info',然後嘗試在該範圍之外訪問它。相反,在函數的頂部聲明它。 – 2015-02-05 22:23:18
謝謝。正如我寫給用戶Neoaptt,我試圖做到這一點,但仍然無法正常工作。 – KaMZaTa 2015-02-06 03:33:13