我有下一个功能。我的 PHP 脚本返回一个包含元素 error
且值为“ERR”的数组:
var updatePaymentType = function(plan_pt_id, pt_id){
var error = null;
var data = new Object()
data["function"] = "update";
data["payment_type_id"] = pt_id;
data["plan_payment_type_id"] = plan_pt_id;
data["data"] = $("#saveform").serializeArray();
$.ajax({
type: "POST",
url: "<?=ROOT_PATH?>/commission/plan/edit/id/<?=$this->editId?>",
data: data,
dataType: "json",
success : function (data)
{
error = data['error'];
alert(error); // All works. Output ERR
}
});
alert(error); // Not work. Output null
return error;
};
我的函数应该返回一个错误。但它返回 null
。
非常感谢。
最佳答案
AJAX 请求是异步的,这意味着直到您返回之后才会设置值(成功
处理程序运行稍后,当服务器响应数据)。
要返回错误类型,您必须使其与 async: false
同步,如下所示:
$.ajax({
async: false,
type: "POST",
...
但这会锁定浏览器,最好调用任何使用 success
回调值的东西,如下所示:
success : function (data)
{
var error = data['error'];
functionThatTakesError(error);
}
关于php - jQuery Ajax 成功变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958676/