sashavalutin
@sashavalutin
Начинающий php-программист

Как связать DropDownList?

Всем добрый день. Есть два DropDownList. Выбрать страну, выбрать город и id города
Нужно связать эти поля так, чтобы при выборе страны в первом DropDownList, во второй подгружались из базы города, которые относятся к выбранной стране, а затем в поле с id подгружался id города, выбранного во втором DropDownList

<?php 
$myCountry = Country::find()->select(['name_rus','code'])->indexBy('name_rus')->asArray()->all();
$cityName = ArrayHelper::map(City::find()->indexBy('id')->all(), 'id', 'name');
?>

<?php // Страна ?>
        <div class="col-sm-3">
            <?= $form->field($city, 'id')->dropDownList($myCountry,$paramsCountry); ?>
        </div>
        <?php // Название ?>
        <div class="col-sm-4">
            <?= $form->field($city, 'name')->dropDownList($cityName,$paramsCityName) ?>
        </div>
        <?php // ID ?>
        <div class="col-sm-2">
            <?= $form->field($city, 'id')->textInput() ?>
        </div>


Пока это выглядит так.
Как мне наладить эту связь?
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 4
Adamos
@Adamos
Выбрать из базы страны и список городов по ним, сохранить в JSON.
Отложить PHP и бекэнд, перейти к JS на фронте.
Подгружать этот JSON и скармливать его любому решению по запросу "chained select" (или, если настаиваете, "chained dropdowns"), которое вам больше понравится. На изменение второго повесить обработчик, заносящий его значение в input.
Ответ написан
Комментировать
php666
@php666
PHP-макака
при загрузке страницы получать только страны
при выборе страны аяксом подтягивать города
Ответ написан
Комментировать
kimono
@kimono
Web developer
Есть уже готовые решения на yii вроде этого: https://demos.krajee.com/widget-details/depdrop
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
Для начала воспользуйтесь поиском по toster.ru.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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