一.静态验证
1.前端代码:常规 <form> 提交表单 代码:略
2.后台模板代码
<?php
namespace Home\Model;
use Think\Model;
class userModel extends Model{
protected $_validate = array(
array("uid","require","用户名不能为空"),
array("pwd1","require","密码不能为空"),
array("pwd2","pwd1","两次输入的密码不一致",0,"confirm"),
array("age","18,50","年龄不在范围内",0,"between"),
array("email","email","邮箱格式不正确"),
);
}
3.后台控制器代码
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function yanzheng(){
$u = M("User");
if(empty($_POST)){
$this->show();
}else{
if($u->create()){//验证
echo"验证通过";
}else{
echo $u->getError();//获取错误信息
}
}
}
}
二.动态验证
1.前端代码:
<body>
<form action="__ACTION__" method="post">
<input type="text" name="Uid" id="uid" /><span id="ts"></span>
<input type="submit" value="验证" />
</form>
</body>
</html>
<script type="text/javascript">
$("#uid").blur(function(){
var uid = $(this).val();
$.ajax({
url:"__ACTION__",
data:{Uid:uid}, //此处与静态验证不同,区分大小写
type:"POST",
dataType:"TEXT",
success: function(data){
alert(data);
if(data.trim()=="OK"){
$("#ts").html("通过");
}else{
$("#ts").html("用户名不能为空");
}
}
})
})
</script>
2.后台模板代码
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function yz(){ $u = D("User"); if(empty($_POST)){ $this->show(); }else{ $rules = array("Uid","require","用户名不能为空"); if($u->validata($rules)->create()){ $this->ajaxReturn("OK","eval"); }else{ $this->ajaxReturn("NO","eval"); } } } }
//静态验证 1.方便:user表可直接用来进行验证.
// 2.死板:写死的内容,一般不去更改,改也麻烦
// 3.验证写在模板文件下,都是数组方式书写:详见手册
// 4.写验证规则须创建子类(父类无需验证规则) D("user");
// 5.静态验证:不论数据库是否由此字段,都可以验证
// 动态验证:必须数据库存在的字段才可验证
// 6.D("user"); 写动态验证是造子类对象,必须注释模板内的验证代码,验证规则写在控制器内
M("user");
验证方法二择其一,不能混合使用