2014-04-06 123 views
13

我正在使用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; 

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

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

但仍然没有消息显示。

+1

可能重复[如何返回从AJAX调用的响应?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-电话) – Quentin

+0

“我的成功功能在我的ajax后没有运行虽然”所以请检查您的网络选项卡的错误 –

+0

检查网络选项卡,它表示邮政跑了OK – Mikey

回答

18

这是因为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; 
0

上面给出解决不了我的problem.So我改变异步到假以获取警报消息的答案。

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"); 
      }, 
     });