2010-05-20 21 views
6

La mayoría de mis sitios web en el pasado han estado bastante limitados a los Estados Unidos cuando se trataba de mostrar direcciones. En un proyecto en el que estoy trabajando en este momento, sin embargo, los usuarios pueden agregar eventos de todo el mundo. Mi problema es cómo abordar la forma diferente en que se muestran las direcciones en todo el mundo. Por ejemplo, City/State/Zip es solo una cosa de los EE. UU.¿Cuál es la mejor manera de manejar entradas de dirección que pueden ser de varios países?

Estaba pensando que alteraría las entradas mostradas en función del país seleccionado, pero no tengo idea de cómo se supone que debo saber la forma en que cada país hace direcciones.

Ideas?

Respuesta

2

Antes que nada tenga cuidado con lo que haga obligatorio. No use validaciones como "El código postal debe contener solo números".

Luego, debe tener una cantidad mínima de campos: País, Ciudad, Código postal y 2 líneas para Dirección.

Consulte, por ejemplo, este sitio de pedidos de libros con entrega en todo el mundo. Poner un libro en su cesto y la cabeza a la caja para ver: https://securepayment.bookdepository.co.uk/checkout/summary

+0

Creo que básicamente seguiré esta idea. Dejaré los campos de entrada bastante sueltos como mencionas y luego haré una solicitud de API de mapas para tomar las coordenadas de cualquier dirección y luego almacenar esa información también. De esa forma puedo hacer todas mis interacciones/cálculos basados ​​en las coordenadas y tener la información textual solo para que los visitantes la lean y, por lo tanto, no importa tanto cómo ingresen. –

1

La forma en que veo que tienes 2 opciones:

1 - encuentra como todos los países muestra sus direcciones y crear una plantilla para cada

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

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

formatos sería asignar un país a un formato, permitiendo que múltiples países tengan el mismo formato.

2 - mostrar todas las direcciones de una manera genérica:

<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> 
0

dos soluciones que se me ocurren son:

  1. requisitos de cambio de dirección [Complex] Con base en el país.
  2. [Simple] Solo tiene un menú desplegable de país y solo un campo de dirección donde el usuario puede ingresar la dirección que le gustaría y luego solo muestra el contenido de ese campo.

A menos que realmente necesite que la dirección se divida en múltiples campos, creo que el método simple de almacenar toda la dirección en un campo podría ser el mejor. Por supuesto, esto significa que su tabla de direcciones no se normalizará y no podrá validar la dirección ingresada por el usuario, aunque la validación también sería bastante compleja según el diseño de su código. Pero, este es un acto de equilibrio entre usabilidad, diseño y complejidad.

Espero que esto ayude.

Cuestiones relacionadas