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

StackOverflow https://stackoverflow.com/questions/2870261

Вопрос

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

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

Идеи?

Это было полезно?

Решение

Прежде всего, будьте осторожны с тем, что вы делаете обязательным. Не используйте проверки, такие как «Zip-код, должен содержать только номера».

Затем вы должны иметь минимальное количество полей - страна, город, почтовый индекс и 2 строки для адреса.

Проверьте, например, этот сайт заказа книг с всемирной доставкой. Поместите книгу в вашу корзину и отправляйтесь на заказ, чтобы увидеть: https://securepayment.bookdepository.co.uk/checkout/Summary

Другие советы

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

То, как я вижу, у вас есть 2 варианта:

1 - найти, как каждая страна отображает свои адреса и создать шаблон для каждого

$address1='23 main st';
$city='New York';
$state='NY';
$postalcode='10000';
$country='US';

include("address_format_" . $formats[$country]  . ".php");

Форматы будут отображать страну к формату, что позволяет нескольким странам иметь тот же формат.

2 - Отображение всех адресов в общем порядке:

<address>
<?php if($address1): ?>Address: <?php echo $address1 ?><br><?php endif; ?>
<?php if($city): ?>City: <?php echo $city ?><br><?php endif; ?>
<?php if($state): ?>State: <?php echo $state ?><br><?php endif; ?>
<?php if($postalcode): ?>Postal Code: <?php echo $postalcode ?><br><?php endif; ?>
</address>

Два решения, которые я могу думать:

  1. Комплекс] Изменить требования к адресу на основе страны.
  2. Простое] Просто провести раскрывающийся список и только один адрес в адресе, где пользователь может ввести адрес, однако он / она хотела бы, чтобы вы просто отображали содержимое этого поля.

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

Надеюсь это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top