jquery の $.ajax() AP を使用して、検証のためにデータをサーバーに送信します。(すべてのフォームではありませんが、サーバー側の検証がさらに必要なフォームです)
したがって、私のサーバーサイド スクリプトは POSTED データを受け取り、検証マジックを実行します。すべてのデータが検証された場合は、単純に数字の「1」を返します。それ以外の場合はゼロの「0」を返します。
form.html
<form class="systemform" id="testform">
<input type="text" name="emailaddy" id="emailaddy" value="me@me.com" />
<input type="submit" name="button" id="272746866" value="Submit Form">
</form>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("form.systemform").submit(function(){
var formid = $(this).attr("id");
var allFormValues = $(this).serialize();
$.ajax({ url:"validate.php",
data:allFormValues+"&formId="+formid,
success:function(response){
if(response == "0"){ alert("invalid data"); }
if(response == "1"){ alert("data validated"); }
}
});return false;
});
</script>
<?php
// validate.php
/* validate the serialized data here */
die("1"); // if everything checks out
?>
フォームデータを検証するこの方法について、他の意見/戦略を聞くことに非常に興味があります。利点は、ブラウザーの更新がないことです。
しかし今、私は検証後に何を実行するのが最善かについて興味があります.
現在、上記のコードはあまり機能していません。そのためsuccess
、$.ajax API の部分では、サーバー側スクリプトからの指示を待機する eval() メソッドを用意しています。
success:function(response){
eval(response); return false;
}
eval() は、js 関数またはコマンドを返すことで、サーバーからの柔軟性を高めます。
2 die() 例:
<?php
//validation.php
die('alert("your email is incorrect");');
die('$("selector").html("fix this part");');
?>
誰かが eval() について何か言いたがることは知っていますが、それは安全ではありません。聞きたいです。そして、その理由を知りたいです。(それは私たち全員にとって良いことです)しかし、いくつかの良い例で詳しく説明してください.