Как я могу создать поле для хранения данных о странах и штатах пользователей?
Я пытаюсь создать тип контента, в котором можно выбрать несколько стран, а затем несколько штатов/территорий в этих странах в зависимости от страны, но я не уверен, как лучше всего это сделать.
Когда пользователь создает часть контента, ему необходимо иметь возможность выбрать свою страну, затем, основываясь на выбранной им стране, он может выбрать свой штат или территорию, в которой доступны только те штаты/территории для этой страны, как опции. У меня есть две такие страны, в которых будет несколько штатов/территорий - США и Канада.
Я создаю текстовое поле с помощью модуля "Поле", в котором перечислены все штаты США, когда родительский элемент выбран с помощью списка (текста) и раскрывающегося списка "выбрать текст". Мне также нужно создать способ представления пользователю канадских территорий при выборе Канады в качестве территории.
Сейчас у меня есть два поля - "Страна" и "Штат". Можете ли вы порекомендовать лучший способ выполнить представление пользователю правильных параметров для штата/территории на основе их выбора страны? На этом я ставлю точку.
2 answers
В Drupal 7 для этой цели следует использовать специальный модуль адресное поле.
Составное поле адреса предоставляет раскрывающийся список страны с другими полями адреса, такими как состояние, загружаемое через ajax, в зависимости от выбранной страны.
США
Канада
Это требование модуля Commerce для выбора адреса.
При необходимости вы можете скрыть некоторые подполя адреса.
Возможно, два текстовых поля с выбором виджета и используйте форму #ajax для обновления списка регионов при выборе страны. Смотрите Динамический список выбора в форме (выпадающий список зависимых) для аналогичного ответа.
Другим вариантом может быть Иерархический выбор , который делает это "из коробки" - вы можете использовать словарь для структуры страны/региона. Соображение здесь заключается в том, что вам нужно будет найти родительский термин региона, чтобы найти страну, и, возможно, вы бы скорее, у вас есть простой способ запросить "контент из Канады", чем "контент из любого региона, в котором есть родительский термин Канада".