2012-03-12 36 views
0

我有這樣的Ajax調用其提交一個表單,並顯示不同的事情依賴於從服務器的響應:這個Ajax調用有什麼問題嗎?

$('#applyForm').submit(function(){ 
var dataString = $(this).serialize(); 
$.ajax({ 
    type: "POST", 
    url: "php/common/apply/apply.php", 
    data: dataString, 
    success: function(data) { 
     if(data=='1'){ 
      $('#formDiv').fadeOut(); 
      $('#ok').fadeIn(); 
     } 
     else if(data=='0') { 
      $('#warning').fadeIn(); 
     } 
     else if(data=='-1') { 
      $('#error').fadeIn(); 
     } 
     else { 
      alert(data); 
     } 
    } 
}); 
return false 
}); 

這是做的正確方法?

謝謝!

+0

您可以張貼返回的數據是什麼? – Joseph 2012-03-12 07:47:09

+0

您在datastring之後錯過了'event.preventDefault()'。沒有這個...它會在提交ajax請求之前提交表單。 – 2012-03-12 07:47:48

+0

奇怪的是,PHP腳本返回「1」,但在前端沒有任何反應。也就是說

不顯示。它只會提醒「1」的響應。有關於此的任何想法? – Ismailp 2012-03-12 07:56:40

回答

0

如果警報顯示1那麼響應不等於任何條件檢查。我認爲您在響應的開頭或結尾處有一些空白,導致data == '1'檢查評估爲false

嘗試微調在PHP端您的回覆,或做它的JavaScript端,如:

success: function(data) { 

    data = $.trim(data); 

    if(data=='1'){ 
     $('#formDiv').fadeOut(); 
     $('#ok').fadeIn(); 
    } 
    else if(data=='0') { 
     $('#warning').fadeIn(); 
    } 
    else if(data=='-1') { 
     $('#error').fadeIn(); 
    } 
    else { 
     alert(data); 
    } 
} 
+0

太棒了!這解決了它! :) – Ismailp 2012-03-12 08:27:25

1

你絕對有正確的想法。調用.ajax發送請求,使用成功處理程序來處理響應。語法可能不是100%,但只要'這是做這件事的正確方法?!' - 是

+0

奇怪的是,php腳本返回「1」,但在前端沒有任何反應。也就是說

不顯示。它只會提醒「1」的響應。有關於此的任何想法? – Ismailp 2012-03-12 07:56:30