vasilyev
@vasilyev
php, 1c-bitrix

Как сделать зависимые select'ы?

Привет!

Есть ли какое-то готовое решение, которое реализует функционал зависимых селектов. "Зависимые" — в том плане, что наполнение каждого селекта зависит от выбранных значений в других селектах. Как в магазинах, например, можно выбрать цвет и размер, но не все сочетания доступны к покупке. И человек выбирает 1 цвет и в соседнем селекте размера у него уже только доступные в этом цвете значения. Надеюсь, понятно объяснил.

Если это в виде какого-то jQuery плагина — то ок. Если в виде какого-то сниппета или чего угодно — тоже ок.

Может быть кто-то часто организовывает такие вещи и может поделиться каким-то изящным решением. А то у меня граблекостыли какие-то получаются.
  • Вопрос задан
  • 2925 просмотров
Пригласить эксперта
Ответы на вопрос 3
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
Я бы рекомендовал делать аяксом. А если на фронте, то по классам и отслеживать событие change.
Ответ написан
Комментировать
Xakephp
@Xakephp
Ответ написан
Комментировать
jakulov
@jakulov
Если я правильно понял суть.
То я делал подобную вещь, вот пример - фильтры букетов www.florist.ru

Не знаю насколько изящно мое решение, но суть такая:
- берем список всех комбинаций различных параметров (кроме взаимоисключающих, конечно)
- строим предрасчитанный индекс - грубо говоря высчитываем список из id товаров в каждой комбинации и сохраняем его (в файл или базу)
- далее пользователь выбирает параметры, мы выполняя поиск по выбранным параметрам, получаем какой-то набор id товаров. Ищем пересечение полученного списка с заранее предрасчитанными комбинациями. Если пересечение не пустое - фильтр остается активным, иначе фильтр становится неактивным.

Минус - нужно время от времени пересчитывать индекс при изменении каких-то параметров у товаров.
По производительности будет зависеть от конкретных случаев применения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы