Когда элементы списка уложены в какую-то структуру, выбор значения можно организовать с помощью каскада выпадающих списков Select или самодельных разворачивающихся списков с флажками, используя AJAX.
Список групп значений
Зоопарки
Питомники (Клик! Подгружаются элементы второго уровня)
Заповедники
Зверофермы
Список конечных значений
Зоопарки
Питомники
[ ] Моржовники
[ ] Мышатники
[ ] Тигрятники
Заповедники
Зверофермы
Выбирая группу, пользователь не должен думать о том, как бы не пропустить нужный элемент. Хорошо, когда нужно проверять все подозрительные разделы на предмет наличия подходящих значений. Поэтому структура часто наполняется синонимами-ссылками.
Список значений с синонимами-дубликатами
Зоопарки
Питомники
[ ] Моржовники
[ ] Мышатники
[ ] Тигрятники
Заповедники
Зверофермы
Коровьи фермы
Фермы с дикими животными (Ссылка на группу «Питомники»)
Варианты с укладкой значений списка в структуру подходят для поиска заранее неизвестных значений.
Если подразумевается частый выбор значений из списка, можно предположить в пользователях некоторое знакомство с элементами и их названиями. В таких случаях применяются автозаполняющиеся поля. Дополнив список синонимами, можно рассчитывать на успех.
Иногда имеет смысл комбинирование поиска по подстроке и «жесткую» реализацию структуры. Опытным пользователям предлагается поиск, возможно с ограничением области, неопытным — хождение по категориям. Вопрос в том, какие средства целесообразно вложить в разработку механизма.
Резюме
1. Выпадающие списки Select плохо подходят для работы с большими множествами. Плюсами являются компактность и возможность поиска значения по первым буквам.
2. Определив взаимоотношения между элементами списка, можно сделать поиск значений по структуре. Проблемы выпадающих списков стоят не так остро, минус — сложность качественной реализации.
3. Можно развивать динамическое формирование списка по наличию подстроки в названиях элементов. Минус — не все пользователи смогут пользоваться таким механизмом.
4. Выбор конкретного решения сильно зависит от специфики задачи.
Дмитрий Сергеев, 22 года. Разрабатываю сайты на Drupal.
phoinix, 13.02.2007 13:53
Тут вот пришла такая идея - выпадающие списки не такие уж и "выпадающие". Используя атрибут size можно сделать просто список с прокруткой.
Развивая этот способ и используя, по моему, не сложный JavaScript можно организовать фильтрацию элементов списка по мере набора какого-либо значения.
Правда такой способ не совсем понятен будет пользователю, но думаю это не так трудно растолковать.