【问题标题】:Ajax success functionAjax成功函数
【发布时间】:2014-05-18 12:46:48
【问题描述】:

我正在使用 Ajax 发布将表单数据提交到服务器,经过验证,然后根据数据是否有效并可以存储返回一条消息。我在我的 ajax 帖子中的成功功能没有运行。这是ajax帖子和成功消息的显示:

jQuery.ajax({           
    type:"post",
    dataType:"json",
    url: myAjax.ajaxurl,
    data: {action: 'submit_data', info: info},
    success: function(data) {
        successmessage = 'Data was succesfully captured';
    }
});

$("label#successmessage").text(successmessage);
$(":input").val('');
return false;

但标签上不会显示任何消息。我尝试将successmessage变量设置为代码中的设定值并且它显示正常,所以我的成功函数一定有问题,我只是看不到什么?我也尝试像这样设置错误回调:

error: function(data) {             
    successmessage = 'Error';
},

但仍然没有消息显示。

【问题讨论】:

标签: javascript php jquery ajax


【解决方案1】:

因为 Ajax 是异步的,所以稍后在服务器应答客户端时会调用 successerror 函数。因此,只需根据结果将部分移动到您的成功函数中:

jQuery.ajax({

            type:"post",
            dataType:"json",
            url: myAjax.ajaxurl,
            data: {action: 'submit_data', info: info},
            success: function(data) {
                successmessage = 'Data was succesfully captured';
                $("label#successmessage").text(successmessage);
            },
            error: function(data) {
                successmessage = 'Error';
                $("label#successmessage").text(successmessage);
            },
        });

        $(":input").val('');
        return false;

【讨论】:

    【解决方案2】:

    上面给出的答案并不能解决我的问题。所以我将 async 改为 false 以获取警报消息。

    jQuery.ajax({
                type:"post",
                dataType:"json",
                async: false,
                url: myAjax.ajaxurl,
                data: {action: 'submit_data', info: info},
                success: function(data) {
                    alert("Data was succesfully captured");
                },
            });
    

    【讨论】:

      猜你喜欢
      • 2014-03-07
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2013-03-10
      • 2015-06-13
      相关资源
      最近更新 更多