我使用 jquery 的 $.ajax() AP 将数据发送到服务器进行验证。(并非所有形式,但那些确实需要更多服务器端验证的形式)
因此,我的服务器端脚本接收 POSTED 数据,并且它是验证魔法。如果所有数据都经过验证,那么我只返回数字“1”,否则我返回零“0”
表单.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() 说些什么,而且它是不安全的。我想听听。我想知道为什么。(这对我们所有人都有好处)但是请详细说明一些好的例子。