2010-05-29 2 views
1

Мне нужно в файле php три выпадающих списка или несколько блоков выбора.Как я могу сделать динамическое выпадающее поле в php?

записи из этих боксов находятся в базе данных mysql.

Единственная проблема заключается в том, что записи в блоке thrid зависят от второго, а записи во втором зависят от первого.

может кто-то помочь? знаете какие-нибудь примеры?

+0

@AvatarKava: полностью выполнимо без JavaScript. Почему JavaScript-тег, когда OP задал вопрос о PHP? – EFraim

+1

@EFraim, как бы вы это сделали * без * Javascript? – Pointy

+0

@EFraim: Как именно вы собираетесь делать это без JS? Вы должны использовать js для загрузки вариантов в каждом последующем списке на основе выбора из предыдущего списка. Вы можете предварительно загрузить все варианты в структуру данных JS, чтобы вам не приходилось возвращаться к серверу 'onChange', но вы все равно необходимо использовать js для заполнения значений. – prodigitalson

ответ

3

есть в основном 3 способа для достижения этой цели:

  1. Используйте формуляр на стороне сервера во время onchange выпадающего меню, и пусть PHP загружает параметры и отображает выпадающий список соответственно на основе выбранного значения выпадающего списка. Технически самый простой способ, но и наименее удобный для пользователя способ. Вероятно, вы также захотите восстановить все остальные входные значения формы.

  2. Пусть PHP заполняет все возможные дочерние значения выпадающего списка в массиве JavaScript и использует функцию JavaScript для заполнения и отображения раскрывающегося списка. Немного сложнее, конечно, если вы еще не знаете JavaScript, но это более удобно. Только оговорка в том, что это пропускная способность и память неэффективны, когда у вас относительно много выпадающих элементов. Представьте себе три выпадающих списка, каждый из которых может содержать 100 элементов, что означает массив JS размером 100 * 100 * 100 = 1 миллион элементов. Затем страница может вырасти более 1 МБ.

  3. Пусть JavaScript запускает асинхронный (ajaxical) HTTP-запрос на серверную сторону и соответственно заполняет и отображает раскрывающийся список. Комбинирует лучшие варианты 1 и 2. Эффективный и удобный для пользователя. jQuery чрезвычайно полезен в этом, поскольку он устраняет проблемы совместимости с кроссбраузерами в отношении запуска адиаксических запросов и прохождения дерева HTML DOM. В противном случае вы бы получили двойной, тройной или даже гораздо более код, необходимый для достижения этого.


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

0

Я из Португалии, так, что мы делаем, это основано на португальском языке, никогда не менее, мы сделали много рабочих сайтов и платформы с тем, что вы хотите, пожалуйста, проверьте эту ссылку ...

если это то, что вы хотите, я могу отправить вам код:

http://www.medipedia.pt/home/home.php?module=farmacia

Смежные вопросы