Окно выбора штатов и стран - лучший способ сделать это? - PullRequest
1 голос
/ 15 апреля 2009

это может показаться тривиальным, но я настраиваю на странице формы профиля, которую я строю, поле выбора стран и штатов, чтобы при выборе США или Канады в поле штатов отображались состояния выбранных стран. иначе он будет отображать None Применимо вместо. Мои страны и штаты находятся в базе данных, и я заполняю выбор из этого - я хотел бы простой, но правильный способ сделать это - я заметил, что по некоторым причинам отключение опций выбора поддерживается не во всех браузерах :( - или есть какой-нибудь хороший бесплатный онлайн-фрагмент, который я мог бы использовать [возможно, мне лень кодировать это здесь]

Я использую JQuery для javascripting здесь.


Отредактировано

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

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


Идея Ajax - это то, что я имел в виду, но дело в том, что в форме заявки, которую я создаю, есть раздел, где вы можете добавить контактные адреса. Он построен так, что вы можете добавить несколько адресов к одному контакту. Есть кнопка добавления, которая просто дублирует адресные вводы, используя функцию javascript, поэтому при отправке формы у вас есть такие данные, как:

_POST ['address []'], _POST ['city []'], _POST ['штат []'], _ POST ['страна []']

Эта вещь привязывает это действие к каждому экземпляру государства и страны при создании.

Ответы [ 4 ]

2 голосов
/ 15 апреля 2009

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

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

После редактирования: насколько вы гибки? Если вы застряли с каким-то существующим кодом, тогда задание cron, которое устраняет ненужные записи о состоянии, может быть другим способом.

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

2 голосов
/ 15 апреля 2009

Прикрепите неизмененный обработчик к выпадающему списку c] Country. В обработчике используйте Ajax, чтобы получить список штатов / провинций для выбранной страны, заполните раскрывающийся список штатов / провинций этим списком и включите раскрывающийся список штатов / провинций.

В статическом HTML отключите раскрывающийся список Штат / провинция.

1 голос
/ 15 апреля 2009

Посмотрите, может ли расширитель CascadingDropdown сделать то, что вы ищете.

0 голосов
/ 15 апреля 2009

Способ, которым я делаю это в ASP.NET, заключается в использовании кэшированного Usercontrol для выпадающего списка стран. К этому выпадающему списку прикреплен RequiredFieldValidator с начальным значением «Выбрать один». Раскрывающийся список «Состояния» может быть включен в тот же пользовательский контроль и может быть заполнен на основе запроса AJAX на основе выбора раскрывающегося списка «Страны». (как упоминает @tpdi в своем ответе)

...