求助:关于表单的验证 [ 新手入门 ]
if(isset($_POST['ajax']) && $_POST['ajax']==='create-form')
{
echo CActiveForm::validate($model);//or echo CActiveForm::validate($tradeModel);
Yii::app()->end();
}
这个东西到底是做啥用的?
我看过文档,时而觉得懂了,时而就觉得很迷糊。
我今天在做一个表单提交两个model的时候,view里面设置的
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
<?php echo $form->errorSummary(array($model,$tradeModel)); ?>
觉得很奇怪的是,我只要设置了if(isset($_POST['ajax']) && $_POST['ajax']==='create-form')
,要么就是不能同时显示错误提示,要么就是不能同时进行ajax验证。为啥啊?
共 3 条回复
-
下面的代码片段是视图文件的示例代码,说明如何使用CActiveForm:
<?php $form = $this->beginWidget('CActiveForm', array( 'id'=>'user-form', 'enableAjaxValidation'=>true, 'enableClientValidation'=>true, 'focus'=>array($model,'firstName'), )); ?> <?php echo $form->errorSummary($model); ?> <div class="row"> <?php echo $form->labelEx($model,'firstName'); ?> <?php echo $form->textField($model,'firstName'); ?> <?php echo $form->error($model,'firstName'); ?> </div> <div class="row"> <?php echo $form->labelEx($model,'lastName'); ?> <?php echo $form->textField($model,'lastName'); ?> <?php echo $form->error($model,'lastName'); ?> </div> <?php $this->endWidget(); ?>
为了响应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(); } }
手册上这样说的
zcyxm
注册时间:2012-05-11
最后登录:2021-04-11
在线时长:152小时12分
最后登录:2021-04-11
在线时长:152小时12分
- 粉丝18
- 金钱37226
- 威望60
- 积分39346