Всем привет.
На странице есть фильтр, два селекта зависимые друг от друга (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'=>'']);
}