Соответственно, селект Организация формируется в зависимости от выбранных option в родительских селектах Муниципалитет и Тип ОО.
Все работает и список слушателей фильтруется как надо. Но после нажатия кнопки Search сбрасывается значение последнего селекта. Иначе говоря, ни один из option не явлется selected
Как мне сохранять выбранное перед фильтрацией значение этого селекта?
В модели Student
Код: Выделить всё
public function getOrgsList($area_id, $org_type_id){
$orgs_query = Orgs::find()
->select(['id', 'org_name'])->where(['area_id'=>$area_id, 'org_type_id'=>$org_type_id])
->distinct(true)
->all();
$orgs = ArrayHelper::map($orgs_query, 'id', 'org_name');
foreach($orgs as $key=>$org){
$id = $key;
$name = $org;
$orgArr[] = ['id'=>$id,'name'=>$name];
}
$finalArr = ['out' => $orgArr,'selected'=>''];
return $finalArr;
}
Код: Выделить всё
public function actionOrg() {
$out = [];
if (isset($_POST['depdrop_parents'])) {
$ids = $_POST['depdrop_parents'];
$area_id = empty($ids[0]) ? null : $ids[0];
$org_type_id = empty($ids[1]) ? null : $ids[1];
if ($area_id != null) {
$data = Student::getOrgsList($area_id, $org_type_id);
/**
* the getProdList function will query the database based on the
* cat_id and sub_cat_id and return an array like below:
* [
* 'out'=>[
* ['id'=>'<prod-id-1>', 'name'=>'<prod-name1>'],
* ['id'=>'<prod_id_2>', 'name'=>'<prod-name2>']
* ],
* 'selected'=>'<prod-id-1>'
* ]
*/
echo Json::encode(['output'=>$data['out'], $data['selected']]);
return;
}
}
echo Json::encode(['output'=>'', 'selected'=>$data['selected']]);
}
Код: Выделить всё
// Dependent Dropdown
echo $form->field($model, 'org_id')->widget(DepDrop::classname(), [
'options' => ['id'=>'org-id'],
'pluginOptions'=>[
'depends'=>['area-id','orgtype-id'],
'placeholder' => '',
'url' => Url::to(['/student/org']),
'loading' => false,
'initialize' => true
],
]);
Код: Выделить всё
$finalArr = ['out' => $orgArr,'selected'=>192];
Уже глаза и руки устали гуглить. Думаю, решение лежит где-то на поверхности. Подскажите, кто-нибудь