2010-05-20 10 views
6

Większość moich stron internetowych w przeszłości była raczej ograniczona do Stanów Zjednoczonych, jeśli chodzi o wyświetlanie adresów. Na projekcie, nad którym teraz pracuję, użytkownicy mogą dodawać wydarzenia z całego świata. Mój problem polega na tym, jak radzić sobie z różnymi sposobami wyświetlania adresów na całym świecie. Na przykład Miasto/Stan/Zip jest po prostu rzeczą amerykańską.Jaki jest najlepszy sposób postępowania z wejściami adresowymi, które mogą pochodzić z wielu krajów?

Zastanawiałem się, czy zmienię dane wejściowe wyświetlane na podstawie wybranego kraju, ale nie mam pojęcia, jak powinienem znać sposób, w jaki adresuje każdy pojedynczy kraj.

Pomysły?

Odpowiedz

2

Przede wszystkim należy zachować ostrożność przy wprowadzaniu obowiązku. Nie używaj sprawdzania typu "kod pocztowy musi zawierać tylko cyfry".

Następnie powinieneś mieć minimalną ilość pól - kraj, miasto, kod pocztowy i 2 linie dla adresu.

Sprawdź na przykład tę książkę zamawiania strony z dostawą na całym świecie. Umieść książkę w koszyku i przejdź do kasy, aby zobaczyć: https://securepayment.bookdepository.co.uk/checkout/summary

+0

Myślę, że zasadniczo podążę za tym pomysłem. Zostawię pola wejściowe raczej luźno, jak wspomniałeś, a następnie utworzysz żądanie API map, aby pobrać współrzędne dowolnego adresu, a następnie zapisz te informacje. W ten sposób mogę wykonywać wszystkie moje interakcje/obliczenia na podstawie współrzędnych i mieć informacje tekstowe tylko dla odwiedzających do przeczytania, a zatem nie ma to znaczenia, jak one się w to wpisują. –

1

Ja widzę to masz 2 opcje:

1 - znaleźć jak każdy kraj wyświetla ich adresy i utworzyć szablon dla każdego

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

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

formatów będzie mapować kraj do formatu, pozwalając wielu krajom mieć ten sam format.

2 - wyświetla wszystkie adresy w sposób ogólny:

<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

dwa rozwiązania, które mogę myśleć to:

  1. [Complex] Wymagania zmiana adresu na podstawie kraju.
  2. [Prosty] Wystarczy mieć listę rozwijaną kraju i tylko jedno pole adresu, w którym użytkownik może wprowadzić adres, ale chciałby, a następnie wyświetlić zawartość tego pola.

Jeśli naprawdę nie potrzebujesz adresu do podzielenia na wiele pól, uważam, że prosta metoda przechowywania całego adresu w jednym polu może być najlepsza. Oczywiście oznacza to, że twoja tabela adresowa nie zostanie znormalizowana i nie będziesz w stanie zweryfikować adresu wprowadzonego przez użytkownika - chociaż walidacja byłaby również dość złożona, w zależności od projektu twojego kodu. Jest to jednak działanie równoważące użyteczność, projekt i złożoność.

Mam nadzieję, że to pomoże.

Powiązane problemy