Какой лучший способ справиться с адресами ввода, которые могут быть из нескольких стран?
-
03-10-2019 - |
Вопрос
Большинство моих веб-сайтов в прошлом были скорее ограничены Соединенными Штатами, когда оно пришла к отображению адресов. На проекте я работаю прямо сейчас, однако пользователи могут добавлять события со всего мира. Моя проблема заключается в том, как решать дело с другим способом, в котором адреса отображаются по всему миру. Например, город / штат / 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>
Два решения, которые я могу думать:
- Комплекс] Изменить требования к адресу на основе страны.
- Простое] Просто провести раскрывающийся список и только один адрес в адресе, где пользователь может ввести адрес, однако он / она хотела бы, чтобы вы просто отображали содержимое этого поля.
Если вам не очень нужен адрес, который будет разделен на несколько полей, я считаю, что простой способ хранения всего адреса в одном поле может быть лучшим. Конечно, это означает, что ваша таблица адресов не будет нормализована, и вы не сможете подтвердить адрес, введенный пользователем, хотя проверка также будет довольно сложным, в зависимости от дизайна вашего кода. Но это балансировочный акт между удобством использования, дизайном и сложностью.
Надеюсь это поможет.