过去,我的大多数网站在显示地址方面都仅限于美国。然而,在我现在正在进行的一个项目中,用户可以添加来自世界各地的事件。我的问题是如何处理在世界各地显示地址的不同方式。例如,City/State/Zip 只是美国的东西。
我想我会根据所选国家/地区更改显示的输入,但我不知道我应该如何知道每个国家/地区的地址方式。
想法?
过去,我的大多数网站在显示地址方面都仅限于美国。然而,在我现在正在进行的一个项目中,用户可以添加来自世界各地的事件。我的问题是如何处理在世界各地显示地址的不同方式。例如,City/State/Zip 只是美国的东西。
我想我会根据所选国家/地区更改显示的输入,但我不知道我应该如何知道每个国家/地区的地址方式。
想法?
首先要小心你强制执行的内容。不要使用“邮政编码必须只包含数字”之类的验证。
然后,您应该有最少数量的字段 - 国家、城市、邮政编码和两行地址。
例如,查看这个全球交付的图书订购网站。把一本书放在你的篮子里,然后去结账看看:https ://securepayment.bookdepository.co.uk/checkout/summary
看看这个网站,里面有所有国家的地址格式信息,可以作为参考。国际地址格式
我看到它的方式有两个选择:
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>
我能想到的两个解决方案是:
除非您确实需要将地址拆分为多个字段,否则我认为将整个地址存储在一个字段中的简单方法可能是最好的。当然,这意味着您的地址表不会被规范化,并且您将无法验证用户输入的地址——尽管根据您的代码设计,验证也会非常复杂。但是,这是可用性、设计和复杂性之间的平衡。
希望这可以帮助。