Здравствуйте коллеги!
Помогите решить проблему,
есть форма которая реализует модель AgentUser :
<?php $form = ActiveForm::begin(); ?>
<div class="row">
<div class="col-md-6">
<?= $form->field($model, 'user_id')->textInput()->hint('Прекрепить пользователя из системы') ?>
</div>
<div class="col-md-6">
<?= $form->field($model, 'relations')->dropDownList($model->getRelations()); ?>
</div>
</div>
<!-- Доп. форма-->
<div id="is-dogovar" style="display: none"></div>
<!-- Доп. форма end-->
.....
в форме есть поле "relations"
private $_relations = [
0 => 'Без договора',
1 => 'Договор',
2 => 'Соглашение',
3 => 'Друзья',
];
если выбираем "Договор" то должны под грузиться дополнительный поля формы из другой модели. я сделал это традиционным путем
<?php
$script = <<< JS
renderContractForm($('#agentlegal-relations option:selected').val());
$('#agentlegal-relations').on('change', function() {
var relations = $('#agentlegal-relations option:selected').val();
renderContractForm(relations);
});
function renderContractForm(relations) {
if(relations == 1)
{
$.post('/accounting/agent-legal/render-contract-form', {is_contract:relations})
.then(function(response) {
$('#is-dogovar').html(response);
$('#is-dogovar').fadeIn();
}, function(error) {
console.log('error', error);
})
} else{
$('#is-dogovar').empty();
$('#is-dogovar').fadeOut();
}
}
JS;
//маркер конца строки, обязательно сразу, без пробелов и табуляции
$this->registerJs($script, yii\web\View::POS_READY);
?>
отправляем ajax запрос в контролер который отрендарит нам доп. вьюху
public function actionRenderContractForm()
{
if (\Yii::$app->request->isAjax) {
$is_contract = Yii::$app->request->post('is_contract');
if ($is_contract) {
$model_contr = new AgentContract();
echo $this->renderAjax('_contract_form', ['model_contr' => $model_contr]);
}
}
}
так вот проблема заключается в том что доп.форме ActiveForm будет генерировать вложенный тег form, Может кто подскажет какие могут решения,