有没有办法渲染部分视图,其中包含表单的一部分,它的主要部分是在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'
答案 0 :(得分:0)
您似乎忘了将model
实际传递到视图中:
public function actionOlddetform()
{
return $this->renderAjax('_olddet', ['model' => $dataModel]);
}
如果你想从主视图渲染“子视图”,你也需要在那里传递变量(即使我在你的视图中没有看到渲染调用):
<?= $this->render('_formPart', ['form' => $form, 'model' => $model]) ?>