2015-10-17 107 views
-1

我通过ajax发布了一个表单,它具有类“bookroom_ajax”,ajax结果在类“ajax_response”的另一个div中返回,此工作正常。jQuery:从ajax响应发布数据

但我想回到它是从submited同一表单中的结果,但如果我的Ajax响应类添加到形式,它不工作了:

<form class="bookroom_ajax ajax_response"> 

这里是jQuery的AJAX代码:

jQuery(document).ready(function($) { 

$(document).on("click",'#bookingbutton2', function() { 

    $('.ajax_response').html('<img src="http://mailgun.github.io/validator-demo/loading.gif" alt="Loading...">'); 

    $.ajax({ 
     type: 'POST', 
     url: AJAX_URL, 
     data: $('.bookroom_ajax').serialize(), 
     dataType: 'json', 
     success: function(response) { 

      if (response.status == 'success') { 
       $('.bookroom_ajax')[0].reset(); 
      } 

      $('.ajax_response').html(response.content); 


     } 
    }); 

}); 

}); 
+0

如果你console.log(响应),输出是什么? – guradio

+0

200好 - 似乎没有任何错误,但loading.gif只是继续显示,并没有输出结果 –

+0

通过执行console.log(response.content)查看response.content中有什么。 –

回答

1

它在我看来像你的AJAX响应不包含预期的数据。这是为什么。只要按钮被点击,您将表单的内容更改为加载微调器。由于bookroom_ajaxajax_response都指向相同的元素,因此您的序列化数据可能不包含您期望它包含的内容(因为表单中没有任何表单元素)。因此,您的服务器没有按照您期望的方式进行响应,也没有包含您试图在.html()表单元素内放回的数据。

$(document).on("click",'#bookingbutton2', function() { 

    // Form content replaced by a spinner 
    $('.ajax_response').html('<img src="http://mailgun.github.io/validator-demo/loading.gif" alt="Loading...">'); 

    $.ajax({ 
     type: 'POST', 
     url: AJAX_URL, 
     // Form doesn't contain data, so serialization doesn't result in expected data to be sent to the server 
     data: $('.bookroom_ajax').serialize(), 
     dataType: 'json', 
     success: function(response) { 

      if (response.status == 'success') { 
       $('.bookroom_ajax')[0].reset(); 
      } 

      // Response doesn't contain expected data 
      $('.ajax_response').html(response.content); 


     } 
    }); 

}); 

这是我基于对你的代码片段的分析的假设。

+0

谢谢你是对的啊,我好傻!我在ajax调用之后添加了加载器代码,现在它工作正常。 –