Quelle est la meilleure façon de traiter les entrées d'adresse qui peuvent être de plusieurs pays?

StackOverflow https://stackoverflow.com/questions/2870261

Question

La plupart de mes sites dans le passé ont été plutôt limités aux États-Unis quand il est venu à l'affichage des adresses. Sur un projet sur lequel je travaille en ce moment, cependant, les utilisateurs peuvent ajouter des événements de partout dans le monde. Mon problème est de savoir comment s'y prendre pour traiter les différentes façon dont les adresses sont affichées à travers le monde. Par exemple, Ville / État / Zip est juste une chose des États-Unis.

je Figuring je modifier les entrées affichées en fonction du pays choisi, mais je ne sais pas comment je suis censé connaître la façon dont chaque pays fait des adresses.

Idées?

Était-ce utile?

La solution

Tout d'abord faire attention à ce que vous faites obligatoire. Ne pas utiliser comme validations « Code postal ne doit contenir que des nombres ».

Ensuite, vous devriez avoir une quantité minimale de champs -. Pays, Ville, Code postal et 2 lignes pour adresse

Consultez par exemple ce site de commande de livre avec livraison dans le monde entier. Mettez un livre dans votre panier et de la tête à la caisse pour voir: https://securepayment.bookdepository.co .uk / caisse / résumé

Autres conseils

Consultez ce site Web, il contient des informations de format d'adresse pour tous les pays, vous pouvez l'utiliser comme référence. Formats d'adresses internationales

La façon dont je vois que vous avez 2 options:

1 - trouvez comment chaque pays affiche leur adresse et de créer un modèle pour chaque

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

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

formats mapperait un pays à un format, ce qui permet plusieurs pays d'avoir le même format.

2 - afficher toutes les adresses d'une manière générique:

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

Deux solutions que je peux penser sont:

  1. [complexes] exigences Changement d'adresse en fonction du pays.
  2. [simple] Juste un menu déroulant pays et un seul champ d'adresse où l'utilisateur peut saisir l'adresse mais il / elle souhaite vous afficher uniquement le contenu de ce champ.

Sauf si vous avez vraiment besoin de l'adresse pour être divisée en plusieurs champs, je crois que la méthode simple de stocker l'adresse complète dans un domaine peut-être mieux. Bien sûr, cela signifie que votre table d'adresses ne sera pas normalisée et vous ne serez pas en mesure de valider l'adresse indiquée par la validation par l'utilisateur mais serait trop joli complexe en fonction de la conception de votre code. Mais, c'est un équilibre entre la facilité d'utilisation, la conception et la complexité.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top