2012-03-12 19 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

+0

あなたはdatastringの後に 'event.preventDefault()'を見逃しました。それがなければ...それはajax要求をする前にフォームを提出するでしょう。 –

+0

奇妙なことは、PHPスクリプトが "1"を返すが、フロントエンドで何も起こらないということです。つまり、

は表示されません。 「1」の応答のみを警告します。その上の任意のアイデア? – Ismailp

答えて

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

1

あなたはまさに正しいアイデアを持っています。 .ajaxを呼び出してリクエストを送信し、成功ハンドラを使用してレスポンスを処理します。構文は100%ではないかもしれませんが、これは正しい方法ですか? - はい

+0

奇妙なことは、PHPスクリプトが "1"を返すが、フロントエンドで何も起こらないということです。つまり、

は表示されません。 「1」の応答のみを警告します。その上の任意のアイデア? – Ismailp