Знающие люди подскажите, что я делаю не так? Только начал изучать yii2, понадобилось сделать связанные списки - выбор региона и городов, делаю так (пример кода ниже), при выборе региона поле городов не заполняется, оно просто становится пустым.
Вьюха:
<? $form = ActiveForm::begin(); ?>
<?php
echo $form->field($form_model, 'reg')->dropDownList(
ArrayHelper::map(Region::find()->all(), 'reg_id', 'reg_name'),
[
'onchange' => '
$.post(
"' . Url::toRoute('chusovoi') . '",
{id: $(this).val()},
function(data){
$("#SelectCit").html(data);
}
);
',
]
);
echo $form->field($form_model, 'cit')->dropDownList(ArrayHelper::map(City::find()->where(['cit_reg_id' => $id])->asArray()->all(), 'cit_id', 'cit_name'),
[
'prompt' => 'Выберите город',
'id' => 'SelectCit'
]
);
?>
<?php ActiveForm::end(); ?>
Контроллер:
if ($id = Yii::$app->request->post('id')) {
$operationPosts = City::find()
->where(['cit_reg_id' => $id])
->count();
if ($operationPosts > 0) {
$operations = City::find()
->where(['cit_reg_id' => $id])
->all();
foreach ($operations as $operation){
echo "<option value='" . $operation->cit_id . "'>" . $operation->cit_name . "</option>";
}
} else
echo "<option>-</option>";