2017-03-14 20 views
0

名前、メール、メッセージを収集する連絡先webformがあり、phpmailerを使用してメールを送信します。いくつかのクライアント側の検証を行い、ajax経由で即座のフィードバックを提供するために、私はjQuery Form Plugin($ form for short)とjQuery Validation Plugin($ validate)を探していました。Jqueryプラグイン:フォームと検証

私はこれらを一緒に使う方法や両方を使う必要があるのか​​、ちょっと混乱します。

$ validateのドキュメントでは、submitHandler関数を使用すると、検証後にAjax経由でフォームが送信されることが記載されています。例では、$フォームメソッドのajaxSubmitを$フォームのページへのリンクを提供し、使用されたことを

$("#myform").validate({ 
    submitHandler: function(form) { 
    $(form).ajaxSubmit();} 
}); 

()。私は右の提供この例では、$フォームプラグインを使用していることを前提とするだろうか?このように、上記のjsの前のどこかにAjaxを提出するためのフォームを用意することになります。

$('#myForm').ajaxForm(); 

あるいは、より良いアプローチは、$検証で指定されたルール()で検証した後、$フォームのajaxSubmitを使用するのでしょうか?

$('#myForm').submit(function() { 
$(this).ajaxSubmit(); 
return false; 
}); 

最後に、どのくらいのサーバー側の検証/ phpによる衛生管理が必要ですか?私は私の最初の質問に答えるスレッドを見つけたいくつかの掘削を行った後、その:

$name = filter_var($_POST["name"], FILTER_SANITIZE_STRING); 
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL); 
$message = filter_var($_POST["message"], FILTER_SANITIZE_STRING); 

編集:$の検証は、フォームを投稿することができます場合、私はちょうどでXSSに対するサニタイズする必要はありませんトップコードのフラグメントが動作します。しかし、私はこれを宣言する必要があるかどうかまだ分かりません。

$('#myForm').ajaxForm(); 
+0

***常に***サーバー側を検証します。クライアント側の検証は簡単に回避できます。クライアント側の検証が便利であると考えてください。 –

+0

したがって、基本的にクライアント側の検証を使用してフォームを使いやすくしても、それでもなお、phpで妥当性を確認してください。 – Bguinen

+0

PHP(バックエンド)検証が常に必要です。 JavaScript(フロントエンドまたはクライアント側)の検証は、ユーザーフレンドリーなアプローチのためだけです。 –

答えて

0

は、トリックを行います任意のVARオプションの後jqueryの検証の

submitHandler: 

の終わりに

$(form).ajaxSubmit(options); 

を入れ、両方の私が見つけたを使用するために、この質問をラップするために、 。

関連する問題