2017-02-14 8 views
3

私はJQueryの検証プラグインを使用してページを更新する必要がなく、試用の&のエラーやWebの検索に無駄な努力を払ってAJAXログインを実行しようとしていますが、私はいくつかのSOの専門家に尋ねることに決めました。ここに私のJSのロジックは、現時点では次のとおりです。正しくJQuery AJAXにログインする方法

$(formEl).validate({ 
    rules: { 
    email: { 
     required: true, 
     email: true 
    }, 
    password: { 
     required: true 
    } 
    }, 
    messages: { 
    email: { 
     required: 'Please enter your email address.' 
    }, 
    password: { 
     required: 'Please enter your password.' 
    } 
    }, 
    submitHandler: function(form) { 
    $.ajax({ 
     url: form.action, 
     type: form.method, 
     data: $(form).serialize(), 
     success: function(form) { 
      // submit form 
     }, 
     error: function() { 
      // add custom jQuery validation error message stating a failure 
     } 

    }); 
    } 
}); 

formEl.addEventListener('submit', function(ev) { 
    ev.preventDefault(); 

}); 

とサーバー側のロジック(PHP):私が達成したい何

if($validation->passes()) { 
// log user in 
}else { 
// echo response?? 
} 

は、フォームが有効であれば、私のPHPスクリプトに投稿されしかし、そうでない場合は、ページをリロードしないで、自分の入力の下にカスタムjQuery検証エラーメッセージをスローします。だから、私はelse句のメッセージをエコーし​​て、submitHandlerに戻るでしょうか? お願いします!あなたの質問に答えるために

答えて

0

は、はい、あなたはelseからjson応答を送信し、その後successコールバックで、フォーム上の適切なエラーが表示さプロセスなければなりません。

編集

PHPコードは次のように変更されます:AJAXで

if($validation->passes()) { 
// log user in 
    $data = /** whatever you're serializing **/; // include "status" for successful login 
}else { 
$data = /** whatever you're serializing **/; // include "status" for error 
} 
header('Content-Type: application/json'); 
return json_encode($data); 

あなたはこの

success: function(data) { 
     var status = data.status; 
     // do things depending on status 
    }, 
+0

ようsuccessを変更するには、そのロジックが中に見えるべきかの例を提供することができます答え?もちろん私の質問のコードを使用します。 –

+0

私の答えを編集しました。確認してください。 –

+0

魅力のように、感謝の仲間:) –

関連する問題