過去の私のウェブサイトのほとんどは、住所の表示に関してはかなり米国に限定されていました。私が現在取り組んでいるプロジェクトでは、しかし、ユーザーは世界中からのイベントを追加することができます。私の問題は、世界中で住所が表示されるさまざまな方法にどう対処するかです。たとえば、City / State/Zipは単なる米国のものです。
選択した国に基づいて表示される入力を変更することを考えていましたが、すべての国がどのように対処するかをどのように知る必要があるのかわかりません。
アイデア?
過去の私のウェブサイトのほとんどは、住所の表示に関してはかなり米国に限定されていました。私が現在取り組んでいるプロジェクトでは、しかし、ユーザーは世界中からのイベントを追加することができます。私の問題は、世界中で住所が表示されるさまざまな方法にどう対処するかです。たとえば、City / State/Zipは単なる米国のものです。
選択した国に基づいて表示される入力を変更することを考えていましたが、すべての国がどのように対処するかをどのように知る必要があるのかわかりません。
アイデア?
まず第一に、あなたが義務化するものに注意してください。「郵便番号には数字のみが含まれている必要があります」などの検証は使用しないでください。
次に、最小限のフィールド(国、都市、郵便番号、住所用の2行)が必要です。
たとえば、世界中に配達されているこの本の注文サイトをチェックしてください。バスケットに本を入れてチェックアウトに向かい、https ://securepayment.bookdepository.co.uk/checkout/summaryをご覧ください。
このウェブサイトをチェックしてください、それはすべての国のためのアドレスフォーマットの情報を持っています、あなたはそれを参照として使うことができます。国際住所フォーマット
私の見方では、2つの選択肢があります。
1-すべての国が住所を表示する方法を見つけ、それぞれのテンプレートを作成します
$address1='23 main st';
$city='New York';
$state='NY';
$postalcode='10000';
$country='US';
include("address_format_" . $formats[$country] . ".php");
formatは、国を1つのフォーマットにマップし、複数の国が同じフォーマットを持つことを可能にします。
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>
私が考えることができる2つの解決策は次のとおりです。
アドレスを複数のフィールドに分割する必要が本当にない限り、アドレス全体を1つのフィールドに格納する簡単な方法が最適だと思います。もちろん、これは、アドレステーブルが正規化されず、ユーザーが入力したアドレスを検証できないことを意味します。ただし、コードの設計によっては、検証もかなり複雑になります。しかし、これは使いやすさ、デザイン、複雑さの間のバランスを取る行為です。
お役に立てれば。