Я создаю веб-приложение. В какой-то момент пользователь должен ввести данные в форму. Эта форма имеет несколько текстовых полей и DropDownLists
.
Один из DDL зависит от предыдущего DDL. Случается, что когда пользователь выбирает значение из первого DDL, второй DDL должен загружать данные из базы данных, которые связаны с выбранным значением первого DDL.
До этого момента я реализовал только PHP
и JS
(без AJAX
, jQuery
или что-то еще) для обработки большинства моих проблем.
Я хотел бы знать, как заполнить второй DDL из базы данных после того, как был выбран элемент первого DDL.
Любая помощь будет оценена по достоинству. Спасибо!
Ajax – ваш лучший выбор. это поможет
Если данные во втором раскрывающемся списке зависят от данных в первом, то вам придется загрузить значения второго выпадающего списка в объект javascript, например:
// Given the options in the first dropdown are: "foo", "bar", and "baz" var secondData = { foo: ['lorem', 'ipsum'], bar: [1,2,3], baz: [] }
Добавьте событие «change» в первый раскрывающийся список и secondData
значение этого выпадающего списка, загрузите содержимое второго раскрывающегося списка со значениями, содержащимися в объекте secondData
.
Если вам удобно использовать jQuery (который я бы рекомендовал), что-то вроде этого должно делать:
$("#dropdown").on("change", function() {//change [dropdown] to the actual ID of your dropdown var selected=$(this).find("option:selected").val();//assuming your dropdown has a value to send, otherwise use text() $.get("options.php?selected="+selected, function(data) { var options=data.split("\n"); var newSelectHTML="<select name=\"whatever\">\n"; for (var i=0;i<options.length;i++) { newSelectHTML+="<option>"+options[i]+"</option>"; } newSelectHTML+="</select>"; $("#form").append(newSelectHTML);//again, change [form] to the correct ID. } }
Этот код просто получает значение выбранного в данный момент параметра DDL с идентификатором «dropdown» (при необходимости меняет) и отправляет его в файл PHP options.php в $_GET["selected"];
, Предположим, что файл затем выводит список опций, разделенных новой строкой ( \n
). Затем JavaScript берет это, разбивает его по строке, перебирает параметры и создает HTML для нового DDL и добавляет его в form
идентификатора элемента. Нет обработки ошибок, но это, как говорится, является упражнением для читателя. Все, что возвращается, находится в переменных data
.