Как я могу создать поле для хранения данных о странах и штатах пользователей?


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

Когда пользователь создает часть контента, ему необходимо иметь возможность выбрать свою страну, затем, основываясь на выбранной им стране, он может выбрать свой штат или территорию, в которой доступны только те штаты/территории для этой страны, как опции. У меня есть две такие страны, в которых будет несколько штатов/территорий - США и Канада.

Я создаю текстовое поле с помощью модуля "Поле", в котором перечислены все штаты США, когда родительский элемент выбран с помощью списка (текста) и раскрывающегося списка "выбрать текст". Мне также нужно создать способ представления пользователю канадских территорий при выборе Канады в качестве территории.

Сейчас у меня есть два поля - "Страна" и "Штат". Можете ли вы порекомендовать лучший способ выполнить представление пользователю правильных параметров для штата/территории на основе их выбора страны? На этом я ставлю точку.

 1
Author: Patrick Kenny, 2013-01-08

2 answers

В Drupal 7 для этой цели следует использовать специальный модуль адресное поле.

Составное поле адреса предоставляет раскрывающийся список страны с другими полями адреса, такими как состояние, загружаемое через ajax, в зависимости от выбранной страны.

США

Addressfield USA

Канада

Addressfield Canada

Это требование модуля Commerce для выбора адреса.

При необходимости вы можете скрыть некоторые подполя адреса.

 1
Author: David Thomas, 2020-06-15 09:13:00

Возможно, два текстовых поля с выбором виджета и используйте форму #ajax для обновления списка регионов при выборе страны. Смотрите Динамический список выбора в форме (выпадающий список зависимых) для аналогичного ответа.

Другим вариантом может быть Иерархический выбор , который делает это "из коробки" - вы можете использовать словарь для структуры страны/региона. Соображение здесь заключается в том, что вам нужно будет найти родительский термин региона, чтобы найти страну, и, возможно, вы бы скорее, у вас есть простой способ запросить "контент из Канады", чем "контент из любого региона, в котором есть родительский термин Канада".

 0
Author: Chris Burgess, 2017-04-13 12:47:06