php - jQuery Ajax 成功变量

标签 php javascript jquery ajax

我有下一个功能。我的 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/

相关文章:

javascript - 无法使用 Fabric JS 取消分组

javascript - 将 GraphiQL 查询转换为 JSON

jquery - 绝对位置元素内的固定位置元素

php - 重复项的消息框

php - 用逗号分隔的字符串内爆数组,但在最后一个字符串后没有逗号

javascript - 如何使用 pdf 文档作为 API 的来源?

javascript - 删除 HTML 标签并考虑文本区域中的换行符

php - 从网络应用程序动态更新 ios apple-touch-icon

php - mysql prepared statements中的绑定(bind)过程

Javascript 函数在桌面上有效,在移动浏览器上失败