渲染部分形式

时间:2015-05-20 05:35:55

标签: php ajax yii2 partial-views active-form

有没有办法渲染部分视图,其中包含表单的一部分,它的主要部分是在AJAX的另一个视图文件中?

我的意思是一个表单变量:

`<?php $form = ActiveForm::begin(['enableAjaxValidation' => true,]); ?>`

例如:

控制器

public function actionOlddetform()
    {
        return $this->renderAjax('_olddet');
    }

查看

<?php $form = ActiveForm::begin(['enableAjaxValidation' => true,]); ?>

<?= $form->field($model, 'date')->input() ?>
<?= $form->field($model, 'annotations')->textarea(['rows' => 3]) ?>

<div id="details-form"></div>

<?php ActiveForm::end(); ?>

AJAX for details-form容器中包含的部分表单取决于date值。我知道如何查看日期并显示该部分视图的任何内容,但是当我想要包含表单的一部分时,我收到错误:

PHP Notice 'yii\base\ErrorException' with message 'Undefined variable: form' 

1 个答案:

答案 0 :(得分:0)

您似乎忘了将model实际传递到视图中:

public function actionOlddetform()
{
    return $this->renderAjax('_olddet', ['model' => $dataModel]);
}

如果你想从主视图渲染“子视图”,你也需要在那里传递变量(即使我在你的视图中没有看到渲染调用):

<?= $this->render('_formPart', ['form' => $form, 'model' => $model]) ?>