在CActiveForm的API Doc示例中是:
要响应 AJAX 验证请求,我们需要以下类代码:
public function actionCreate()
{
$model=new User;
$this->performAjaxValidation($model);
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
if($model->save())
$this->redirect('index');
}
$this->render('create',array('model'=>$model));
}
protected function performAjaxValidation($model)
{
if(isset($_POST['ajax']) && $_POST['ajax']==='user-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
}
我的问题:这段代码是什么意思:$_POST['ajax']==='user-form'
?我将其更改为$_POST['ajax']==='xxxzzz'
但脚本确实有效!这是有必要的?
编辑
我的代码错了。
if(isset($_POST['ajax']) && $_POST['ajax']==='xxx-zzz')
表达确实有效。仍然执行验证的原因是,在接下来的几行中,我以这种方式执行了验证:
$model = new User;
$this->performAjaxValidation($model,'xxx-zzz'); //here don't perform Ajax validation
.
.
.
if(!$validate){
$this->performAjaxValidation($model,'user-form'); // here Ajax validation will performed
.
.
.
}