2011-12-16 6 views
2

私は誰かが自分のウェブサイトで新しいユーザーを作成したときにjQueryとAJAXを使ってフォームを検証しています。私はjQueryとAJAXと一緒に、OOP PHPでプログラミングしています。 私はこのコードを使用しています:jQuery、AJAX - スクリプトが偽を返すかどうかを確認する方法

$.ajax({ 
     type: "POST", 
     url: "includes/classes/handler.php?do=addLogin", 
     data: dataString, 
     success: function() { 
      $('.sideBarNewUserWrap').fadeOut(); 
     } 
    }); 
    return false; 

をしかし、電子メールがすでに存在する場合はどのように私は、エラーメッセージを返すのですか?

希望があれば十分です。そうでなければ、もう少し追加します。前方:)で おかげ

* UPDATE *

この電子メールが存在するかどうかをチェックする私のPHPです:

$email_count = mysql_num_rows($check_email); 
    if($email_count){ 
     return false; 
    } 

* UPDATE *

 success: function(data){ 

      if(data.error){ 
       $('.sideBarNewUserWrap').fadeOut(); 
      } else { 
       $('.sideBarNewUserError-email').fadeIn(); 
      } 

を今すぐこのルックスをなぜなら失敗のためにかなり。 if(data.error)それでいいですか?

if(date.error){ 
    //Error message 
} 

ではなく、他の方法で回避:

はそれはのようなものではないでしょうか?

まあ、既に存在するメールを入力しようとすると、それは私にはわかりますが、なぜこれは機能しますか?私の目には何か間違っていますか?

答えて

1

あなたが応答を取得することができますが、ユーザーに

+0

PHPでこれをどうやって行いますか? PHPの詳細で質問を更新します。 – skolind

+0

falseが返されても、 "data.error"が利用可能であるとは限りません。コード '$ result = array( 'error' => true)の下に投稿されたコードを使用する必要があります。 echo json_encode($ result); '。それから、data.errorが利用可能になります。 –

0

基本的にhandler.phpには、電子メールがすでに存在するかどうかを確認し、クライアントに少なくとも2つの異なる応答を送信する必要があります(0:電子メールが存在する、1:okなど)。

$result = array('error' => true); // or $result = array('error' => false); 
echo json_encode($result); 

JS:

success: function(response) { 
    if (response.error) { 
     // ... 
    } 
} 
+0

私は既に電子メールが存在するかどうかを確認しています。もしそうなら、私のスクリプトは偽を返します。したがって、何も起こりません。 – skolind

+0

あなたのスクリプトは、成功関数でそれを読むことができるように、値(文字列、int、jsonオブジェクト...)を返す必要があります – fcalderan

2

PHPを動作状況を伝えることができるので、あなたが応答データを読み取ることができ、成功コールバックで

関数内:

$.ajax({ 
     type: "POST", 
     url: "includes/classes/handler.php?do=addLogin", 
     data: dataString, 
     success: function(response) { 
      if (response == "ok") 
      { 
       $('.sideBarNewUserWrap').fadeOut(); 
      } 

      else 
      { 
       // error happend 
      } 
     } 
    }); 
    return false; 

クライアント側で検証する文字列、PHP、さらにはXML、JSONを返すことができます

+0

json_encode();ために? – skolind

+0

dataTypeをjson "dataType: 'json'"に変更すると、必要な属性を追加できるので、文字列を解析する代わりにjavascriptオブジェクトが返されます。だから "レスポンス"は実際には$ resultのjavascript表現です –

1

あなたのhandler.phpファイルのエコーを使用してデータを返すことができます。 これをjQueryで受け取るには、Ajax関数のsuccess関数にパラメータを置きます。

success: function(returnedValue) 
{ 
// Here you check if returned value e.g. "returnedValue == 1" 
} 
関連する問題