Отрисовка частичной формы

Есть ли способ визуализировать частичное представление, которое содержит часть формы, основная часть которой находится в другом файле представления с 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 для details-form контейнер зависит от date значение. Я знаю, как проверить дату и показать любое содержимое этого частичного представления, но когда я хочу добавить часть формы, я получаю сообщение об ошибке:

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

1

Решение

Кажется, вы забыли передать model на ваш взгляд:

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

И если вы хотите визуализировать «подэлементы» из основного представления, вам также необходимо передать туда переменные (даже если я не вижу вызова рендеринга в вашем представлении):

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]