|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Есть два справочника (MySQL): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Делаю форму, запросами получаю данные из обоих справочников и отображаю их в выпадающие списки. Как сделать так, чтобы при изменении значения в первом списке (table1_key) во втором списке обновлялись и появлялись только те значения из table2, для которых table2.table1_key=table1.table1_key? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 11:18 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Ну с ходу есть два варианта: 1. Простейший. Через перезагрузку страницы с передачей tabel1_key. 2. С помощью javascript. Формируем два массива и потом при изменениии первого списка меняем второй. Я обычно для коротких списков применяю второй вариант, для длинных - первый. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 11:30 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
А поподробнее можно, с примерами кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 11:39 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Первый вариант или второй? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 11:45 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Оба =) Дело в том, что размер списков может изменяться, точнее пользователю позволено добавлять туда элементы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 12:09 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Скрипты :). Да, с этим сложнее. Такие фишки в интернете я не выкладывал, все работает у заказчиков во внутренней сетке. По второму варианту: я этот браз за исходник. Потом поправил под свои задачи чуть-чуть. По первому: Идея такая, две формы, в каждой свой список, у первой action - этотже скрипт, у второй что угодно. Плюс во второй есть невидимое поле хранящее id из первого списка (это если надо, мне вот надо было). На первом списке висит событие on_change(), которое делает submit первой формы средствами javascript. Алгоритм такой: Если id первого списка пустое, то рисуем полный первый список и пустой второй. Список изменили, форма отправилась, скрипт выполнился второй раз. Id первого списка не пустое. следовательно рисуем первую форму со всем списком, помечая выбранное значение. Ну и формируем второй список, отбирая в него только нужные записи. Написать проще чем объяснить ;)). По последнему пункту: обычно примерные размеры справочников определяются еще на этапе проектирования БД. И я обычно применяю второй способ там где количество записей меньше сотни (в двух табличках). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 12:28 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Лучше использовать яво-скрипт (можно, правда и яву), потому-что при перезагрузке будет тратиться время юзера (а ежели он с диалапом?). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 13:01 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Не спорю, для диалапа перезагрузка критична. Но большой объем данных - тоже критичен, не правда ли? Вот и надо найти компромис между этими двумя вещами. А это мы за Гостя никак не сделаем ;)). К тому же первый способ не зависит от браузера, а второй может и зависеть ;)). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 13:14 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Не, ну тогда проверку на версию броузера сделать надо! И соответственно сделать два варианта: - С Ява - скриптами - Просто загружающийся. Большой объем данных? Ну и что? Знаешь, ждать пока загрузиться список полностью может оказаться легче, чем ждать пока загрузиться страница. Причем не забывай, что в странице вставлены картинки & т.п. фичи... Так-что соответственно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 13:23 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Предположим у нас общий вес странички (без массива но с картинками и т.п.) скажем 20кб, в первой таблице тыщща записей и для каждой тыщща записей во второй таблице. Вопрос: так сколько надо будет клиенту закачать к себе кб? В моем первом примере тыщща записей из первого списка + тыщща записей из второго. В моем (и твоем) втором примере тыщща х тыщща = миллион записей. При длинне строки в БД даже в 100 символов, сколько это кб будет? Я конечно понимаю, что это не совсем честный пример, но, повторюсь, тут надо плясать от количества записей, которого мы не знаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 13:48 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Спасибо, коллеги. Будем думать. Пока сделаю на javascript. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 14:02 |
|
Два связанных выпадающих списка
|
|||
---|---|---|---|
#18+
Напиши потом что получилось ;)). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 14:04 |
|
|
start [/forum/topic.php?fid=23&msg=32154092&tid=1480610]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 153ms |
0 / 0 |