@BuBux

Как изменить значение select при изменении другого select?

Допустим есть выпадающий select "направление". И второй select "модули". При выборе направления должны в select модулей выпадать модули соответствующие данному направлению(по id).
Пробую так, но не получается.
<select id="directions">
    <option value="">- выберите направление -</option>
        <?php
	    foreach($info['dir_l'] as $dir){
		echo "<option value='".$dir['ID']."'>".$dir['NAME']."</option>";
	    }
	?>
</select>

<select id="modules">
    <option value="">- выберите модуль -</option>
</select>

$("#directions").change(function () {
    $.getJSON("'task/ajax'", null, function (data) {
        $("#modules option").remove();
        $.each(data.res, function (index, item) {
            $("#modules").append(
                $("<option></option>").text(item.N).val(item.ID)
            )
        });
    });
});

function actionAjax(){
    $res = GroupCL::getList(1);
     echo json_encode($res);
     return;
}

Не знаю как в task/ajax правильно через js передать id направления. Сейчас я статически подставляю 1, но даже так не работает.
  • Вопрос задан
  • 537 просмотров
Пригласить эксперта
Ответы на вопрос 1
wolf1848
@wolf1848
Искатель
https://codepen.io/wolf1848/pen/rNVJxMx Вот тут работает вставка в select новых значений
На сервер через jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )
вы отправляете данные в дата к примеру так
$.getJSON("task/ajax.php", {id:1}, function (data) {});

На сервере обрабатываете вот так
$res = GroupCL::getList($_REQUEST['id']);//ваша выборка по id
ob_clean(); // очищаем буфер вывода что бы был валидный json
echo json_encode($res);
die(); //останавливаем выполнение что бы не было ничего лишнего

Не забудьте объект $res привести к состоянию в котором будете обрабатывать его на js
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы