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

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

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

Идеи?

6
задан Matt 3 July 2013 в 16:06
поделиться

4 ответа

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

Тогда у вас должно быть минимальное количество полей - Страна, Город, Почтовый индекс и 2 строки для Адреса.

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

2
ответ дан 17 December 2019 в 04:43
поделиться

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

2
ответ дан 17 December 2019 в 04:43
поделиться

Как я вижу, у вас есть 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
ответ дан 17 December 2019 в 04:43
поделиться

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

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

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

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

0
ответ дан 17 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: