使用TP 3.2框架
public function add_post(){ //驗證規則 $rule=array( array('name','require','請輸入姓名',1),//必須驗證name ); $m=M('user'); //獲取name,sex,contact數據到模型,並驗證 if(!$m->field('name,sex,contact')->validate($rule)->create()) $this->error($m->getError()); $result=$m->add(); if(!$result) $this->error('添加失敗'); $this->success('添加成功',U('dir')); }
驗證規則也可以寫到模型裡,但我感覺有些麻煩,一是有時候不同頁面驗證的方式會不一樣,二是看到這個add_post事件裡的代碼,就清楚要接收什麼數據,如何驗證數據能夠在第一眼有個大致了解,所以總結出了此方式。
ThinkPHP的後台框架,本身並沒有ajax。用jquery form提交就好,很方便。你可以看一下thinkphp官方的示例
www.thinkphp.cn/extend/230.html
給你看我寫的一個例子:
//表單驗證
protected $_validate=array(
//array('驗證字段','驗證規則','錯誤提示',驗證條件,附加規則,驗證時間)
array('uname','require','用戶名必須驗證!',1,'regex',3),
//array('username','','用戶名已經存在',1,'unique',1),
array('pwd','require','密碼必須填寫!'),
array('pwd','checkPwd','密碼長度不少於6位',1,'callback'),
);
function checkPwd(){
$password=$_POST['pwd'];
if(strlen($password)>=6){
return true;
}else {
return false;
}
}
//表單映射
protected $_map=array(
'uname'=>'username',
'pwd'=>'password',
);
//自動完成功能
protected $_auto=array(
//array(填充字段,填充內容,填充條件,附加規則) 填充條件:1,插入 2,更新 3,所有的
array('reg_date','getDate',1,'callback'),
array('password','md5',3,'function'),
);
function getDate(){
return date('Y-m-d H:i:s');
}