Задать вопрос
myks92
@myks92
Нашёл решение — пометь вопрос ответом!

YII динамические поля. Как генерировать select2?

Использую это расширение для создания динамических полей, select2 от картика и зависимые поля DeepDrop от картика.

При генерации динамических полей вызывается скрипт создания нового поля и появляется загрузка, которая затем не исчезает. ID у полей разные. Поля типа input генерирует хорошо, а с вышеописанными плагинами работать не хочет... Что может быть? 5a1d59f958b11490588278.png

Конфликт скорее всего связан с Select2 и Deep Drop. 5a1d5b1c98ec9503782725.pngКод
<div class="">
            <div class="panel panel-default">
                <div class="panel-heading"><h4><?=Yii::t('backend', 'Appointment')?></h4></div>
                <div class="panel-body">
                    <?php DynamicFormWidget::begin([
                        'widgetContainer' => 'dynamicform_wrapper', // required: only alphanumeric characters plus "_" [A-Za-z0-9_]
                        'widgetBody' => '.container-items', // required: css class selector
                        'widgetItem' => '.item', // required: css class
                        'limit' => 7, // the maximum times, an element can be cloned (default 999)
                        'min' => 3, // 0 or 1 (default 1)
                        'insertButton' => '.add-item', // css class
                        'deleteButton' => '.remove-item', // css class
                        'model' => $modelsAppointmentItem[0],
                        'formId' => 'dynamic-form',
                        'formFields' => [
                            'type_judge',
                            'judge_id',
                            'judge_comitet_id',
                        ],
                    ]); ?>

                    <div class="container-items"><!-- widgetContainer -->
                        <?php foreach ($modelsAppointmentItem as $i => $modelAppointmentItem): ?>
                            <div class="item panel panel-default"><!-- widgetBody -->
                                <div class="panel-heading">
                                    <h3 class="panel-title pull-left">Судья №<?=$i+1?></h3>
                                    <div class="pull-right">
                                        <button type="button" class="add-item btn btn-success btn-xs"><i class="glyphicon glyphicon-plus"></i></button>
                                        <button type="button" class="remove-item btn btn-danger btn-xs"><i class="glyphicon glyphicon-minus"></i></button>
                                    </div>
                                    <div class="clearfix"></div>
                                </div>
                                <div class="panel-body">
                                    <?php
                                    // necessary for update action.
                                    if (! $modelAppointmentItem->isNewRecord) {
                                        echo Html::activeHiddenInput($modelAppointmentItem, "[{$i}]id");
                                    }
                                    ?>

                                    <?= $form->field($model, "[{$i}]type_judge", ['options' => ['class' => 'col-sm-3']])->widget(Select2::classname(), [
                                        'data' => Appointment::getTypeJudgeList(),
                                        'language' => 'ru',
                                        'hideSearch' => true,
                                        'initValueText' => ['1'],
                                        'options' => ['placeholder' => 'Выберите тип судьи...'],
                                        'pluginOptions' => [
                                            'allowClear' => false
                                        ],
                                    ]);?>
                                    <?= $form->field($model, "[{$i}]judge_id", ['options' => ['class' => 'col-sm-6']])->widget(DepDrop::classname(), [
                                        'type'=> DepDrop::TYPE_SELECT2,
                                        'data' => ArrayHelper::map(\backend\models\Judge::find()->all(), 'id', 'fullName'),
                                        'pluginOptions'=>[
                                            'depends'=>['appointment-type_judge'],
                                            'placeholder' => 'Выберите судью...',
                                            'url' => Url::to(['/appointment/judge-list']),
                                            'loadingText' => 'Загрузка судей...',
                                            'initialize' => true,
                                            'params'=>[$model->judge_id],
                                        ]
                                    ]);?>

                                    <?= $form->field($model, "[{$i}]judge_comitet_id", ['options' => ['class' => 'col-sm-3']])->widget(DepDrop::classname(), [
                                        'type'=>DepDrop::TYPE_SELECT2,
                                        'data' => ArrayHelper::map(Appointment::getJudgeWhere(), 'id', 'appInfoJudge'),
                                        'pluginOptions'=>[
                                            'depends'=>['appointment-judge_id'],
                                            'placeholder' => 'Выберите категорию...',
                                            'url' => Url::to(['/appointment/judge-category-list']),
                                            'loadingText' => 'Загрузка категорий...',
                                            'initialize' => true,
                                            'params'=>[$model->judge_comitet_id],
                                        ]
                                    ]);?>
                                </div>
                            </div>
                        <?php endforeach; ?>
                    </div>
                    <?php DynamicFormWidget::end(); ?>
                </div>
            </div>
  • Вопрос задан
  • 1397 просмотров
Подписаться 1 Простой 11 комментариев
Пригласить эксперта
Ответы на вопрос 1
@LAV45
Попробуй https://github.com/unclead/yii2-multiple-input
тут проблем с js точно не должно быть
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы