Задать вопрос
@walder

Как сохранять значение в depdrop после перезагрузки страницы?

Всем привет.

На странице есть фильтр, два селекта зависимые друг от друга (Select2 и DepDrop). Если выбирать из фильтра, все работает хорошо, таблица фильтруется. А если перейти к примеру к деталям какой-то записи и назад или просто сделать рефреш страницы, то тогда второй селект (DepDrop) сбрасывается, просто становиться disabled и показывает placeholder, но при этом записи отображаются правильно, то есть те самые что были отфильтрованы. Как сохранять выбор второго селекта? Чтобы после обновления страницы оставалось выбранное значение?

view
<div class="col-lg-6 col-md-6">
    <?php echo $form->field($model, 'Cat')
    ->label(false)
    ->widget(Select2::class, [
        'data'=> Orders::getCat(),
        'value' => '',
        'options' => [
            'id'=>'cat_id',
            'placeholder' => 'Cat...',
        ],
        'pluginOptions' => [
            'allowClear' => true,
        ],
    ]) ?>
</div>

<div class="col-lg-6 col-md-6">
    <?php
    echo $form->field($model, 'sub')
        ->widget(DepDrop::class, [
            'type' => DepDrop::TYPE_SELECT2,
            'select2Options' => [
                'pluginOptions'=>['allowClear'=>true,]
            ],
            'options'=>[
                'id'=>'sub_id'
            ],
            'pluginOptions'=>[
                'depends'=>['typ-id'],
                'placeholder'=>'Sub...',
                'url'=>Url::to(['orders/subcat']),
            ],
        ])->label(false);
    ?>
</div>


controller
public function actionSubcat() {
    $out = [];

    if (isset($_POST['depdrop_parents'])) {
        $parents = $_POST['depdrop_parents'];

        if ($parents !== null) {
            $cat_id = $parents[0];
            $listCat = Orders::findCatId($cat_id);
            $out[] = ['id' => $value['id'], 'name' => $value['name']];

            echo Json::encode(['output'=>$out, 'selected'=>'']);
            return;
        }
    }
    echo Json::encode(['output'=>'', 'selected'=>'']);
}
  • Вопрос задан
  • 228 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
muzikant777
@muzikant777
PHP/Vue разработчик
Попробуйте для второго селекта указать
'pluginOptions' => [
                'depends'=>['typ-id'],
                'placeholder'=>'Sub...',
                'initialize' => true,
                'initDepends'=>['Cat'],
                'url'=>Url::to(['orders/subcat']),
            ],


Ссылка на пример: demos.krajee.com/widget-details/depdrop#advanced-usage
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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