处理来自多个国家/地区的地址输入的最佳方法是什么?

时间:2010-05-20 00:05:01

标签: php street-address country city

过去,我的大多数网站在显示地址时都非常局限于美国。然而,在我正在进行的项目中,用户可以添加来自世界各地的活动。我的问题是如何处理地址在世界各地的不同显示方式。例如,City / State / Zip只是美国的事情。

我想我会改变根据所选国家显示的输入,但我不知道我应该如何知道每个国家的地址。

想法?

4 个答案:

答案 0 :(得分:2)

首先要小心你强制要求。请勿使用“邮政编码必须仅包含数字”等验证。

然后,您应该有最少量的字段 - 国家,城市,邮政编码和地址的2行。

查看本书订购网站,并提供全球交付。把书放在你的篮子里然后去结帐看看:https://securepayment.bookdepository.co.uk/checkout/summary

答案 1 :(得分:2)

查看此网站,它有所有国家/地区的地址格式信息,您可以将其作为参考。 International Address Formats

答案 2 :(得分:1)

我认为你有两种选择:

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>

答案 3 :(得分:0)

我能想到的两个解决方案是:

  1. [复杂]根据国家/地区更改地址要求。
  2. [简单]只需拥有一个国家/地区下拉菜单,只需一个地址字段,用户就可以输入该地址,但他/她希望您只显示该字段的内容。
  3. 除非你真的需要将地址分成多个字段,否则我认为将整个地址存储在一个字段中的简单方法可能是最好的。当然,这意味着您的地址表不会被标准化,您将无法验证用户输入的地址 - 尽管验证也会非常复杂,具体取决于您的代码设计。但是,这是可用性,设计和复杂性之间的平衡行为。

    希望这有帮助。