Заполнение Выпадающего списка в PHP динамично

У меня есть маленькая страница PHP, которая содержит два выпадающих списка

Я должен заполнить второй согласно результату, выбранному в первом выпадающем списке.... это возможное? Другими словами, я должен использовать значение, выбранное из первого выпадающего списка, и использовать его в запросе дБ, используемом для заполнения второго выпадающего списка (но это должно быть заполнено после выбора первого выпадающего списка.

Если это возможно какие-либо подсказки? (можно предположить, что я могу заполнить первый выпадающий список от дБ),

спасибо

5
задан mouthpiec 9 April 2010 в 22:11
поделиться

4 ответа

Вариант 1: встроить данные для второго выбора в документ как скрытые элементы или объекты JS. Обработчик события change при первом выборе будет заполнять второй выбор. List Apart имеет пример страницы динамического выбора .

Вариант 2: используйте AJAX. Когда первый выбор изменится, сделайте запрос на сервер для содержимого второго выбора, затем заполните его. С библиотекой JS (например, jQuery) это становится довольно просто.

$('select#one').change(
  function (evt) {
    $('select#two').load('/thing/'+this.value);
  }
);

«/ thing / » идентифицирует ваш серверный сценарий для создания списка элементов на основе «» (используйте средства перезаписи вашего веб-сервера, чтобы разрешить URL-путь к фактическому сценарию). Вы могли бы просто сделать так, чтобы он всегда генерировал элементы

  • , используя JSON или какой-либо другой формат.

    $('select#one').change(
      function (evt) {
        $('select#two').load('/thing/'+this.value, {fmt: 'option'});
      }
    );
    
  • 2
    ответ дан 15 December 2019 в 06:21
    поделиться

    Вам потребуется асинхронный обратный вызов на сервер без перезагрузки страницы. (Я сомневаюсь, что вы действительно хотите иметь кнопку, которая отправляет обратно на сервер) Итак, AJAX - это то, что может делать именно это. Добавьте вызов AJAX к обработчику событий onchange первого раскрывающегося списка, который отправляет выбор обратно на сервер и возвращает содержимое второго раскрывающегося списка. Когда вызов AJAX возвращает новые значения, вы будете использовать его для создания своего контента для второго раскрывающегося списка. Большая часть этого, конечно же, выполняется в Javascript, помимо собственно серверной части, которая останется в PHP.

    0
    ответ дан 15 December 2019 в 06:21
    поделиться

    Вам нужно будет использовать AJAX для отправки выбора из первого раскрывающегося списка на сервер. Затем вы можете запросить базу данных, создать второе раскрывающееся меню и отправить его пользователю.

    1
    ответ дан 15 December 2019 в 06:21
    поделиться

    Есть два способа сделать это. Старый метод «выберите вариант и отправьте на перестройку страницы», который работает практически повсеместно, и новомодные методы AJAX для загрузки содержимого второго раскрывающегося списка без обновления страницы.

    У обоих есть преимущества / недостатки, поэтому все сводится к тому, что лучше всего подходит для ваших целей.Метод oldschool вообще не требует никакого javascript, но поскольку он выполняет двустороннюю передачу формы через сервер, вы получите мерцание «очистить окно, а затем перерисовать страницу».

    Метод AJAX обходит мерцание при обновлении, но также не будет работать в браузерах с отключенным Javascript. Требуется немного больше кода на стороне клиента для обработки вызовов AJAX и заполнения раскрывающегося списка, но код на стороне сервера будет практически одинаковым для обоих методов: одинаковые запросы, одинаковые циклы поиска, просто другой вывод методы.

    0
    ответ дан 15 December 2019 в 06:21
    поделиться
    Другие вопросы по тегам:

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