Как сделать связанные списки yii2? Dependend dropdown

243
26 июля 2017, 23:25

Знающие люди подскажите, что я делаю не так? Только начал изучать 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>";
                    $cit_id[]=$operation->cit_id;
                    $cit_name[]=$operation->cit_name;
                }
            } else
                echo "<option>-</option>";
READ ALSO
Real-time постинг на PHP

Real-time постинг на PHP

Нужно создать real-time постинг на php (mysql) для сайтаТ

240
Вычисление в строке типа nowdoc

Вычисление в строке типа nowdoc

Подскажите, как можно произвести вычисления в строке типа nowdoc

213
Отправка формы без подтверждения

Отправка формы без подтверждения

Есть форма с полями, action'ом, все правильно, мне нужно сделать так, чтоб форма была без кнопки и просто переход по адресу формы означал отправку...

186
Как правильно сделать роутинг в Laravel?

Как правильно сделать роутинг в Laravel?

ЗдравствуйтеПри создании сайта изначально были роуты для категорий и подкатегорий:

238