加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Yii CForm,嵌套表单Ajax验证

发布时间:2020-12-13 22:47:46 所属栏目:PHP教程 来源:网络整理
导读:我创建了以下嵌套表单数组; return array( 'elements' = array( 'contact' = array( 'type' = 'form','elements' = array( 'first_name' = array( 'type' = 'text',),'last_name' = array( 'type' = 'text',) ),'lead' = array( 'type' = 'form','elements'
我创建了以下嵌套表单数组;

return array(

    'elements' => array(
        'contact' => array(
            'type' => 'form','elements' => array(
                'first_name' => array(
                    'type' => 'text',),'last_name' => array(
                    'type' => 'text',)
            ),'lead' => array(
            'type' => 'form','elements' => array(
                'primary_skills' => array(
                    'type' => 'textarea','buttons' => array(
        'save-lead' => array(
            'type' => 'submit','label' => 'Create','class' => 'btn'
        ),)
);

我有这样的查看页面

echo $form->renderBegin();
echo $form['lead'];
echo $form['contact'];
echo $form->buttons['save-lead']; 
echo $form->renderEnd();

我的actionCreate是这样的

$form = new CForm('application.views.leads.register');
$form['lead']->model = new Lead;
$form['contact']->model = new Contact;

// how can i perform ajax validation only for $form['contact']
$this->performAjaxValidation($model); 

//if contact form save btn is clicked
if ($form->submitted('save-lead') && $form['contact']->validate() &&

    $form['lead']->validate()
) {

    $contact = $form['contact']->model;
    $lead = $form['lead']->model;
    if ($contact->save()) {
        $lead->contact_id = $contact->id;
        if ($lead->save()) {
            $this->redirect(array('leads/view','id' => $lead->id));
        }
    }
}

ajax验证方法是

protected function performAjaxValidation($model)
{
    if (isset($_POST['ajax']) && $_POST['ajax'] === 'contact') {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
}

所以我的问题是如何在$form [‘contact’]和$form [‘lead’]元素上单独执行ajax验证?

解决方法

您可以在页面中包含多个表单,但不应嵌套它们. 嵌套表单无效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读