ما هي أفضل طريقة للتعامل مع مدخلات العنوان التي يمكن أن تكون من بلدان متعددة؟

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

سؤال

تقتصر معظم مواقع الويب الخاصة بي في الماضي على الولايات المتحدة عندما يتعلق الأمر بعرض العناوين. في مشروع أعمل عليه الآن ، يمكن للمستخدمين إضافة أحداث من جميع أنحاء العالم. مشكلتي هي كيفية التعامل مع الطريقة المختلفة التي يتم بها عرض العناوين في جميع أنحاء العالم. على سبيل المثال ، المدينة/الدولة/الرمز البريدي هو مجرد شيء أمريكي.

كنت أتعرف على أنني سأغير المدخلات المعروضة بناءً على البلد المختار ، لكن ليس لدي أي فكرة عن كيف من المفترض أن أعرف الطريقة التي يتناولها كل بلد.

أفكار؟

هل كانت مفيدة؟

المحلول

بادئ ذي بدء ، كن حذرًا مع ما تجعله إلزاميًا. لا تستخدم عمليات التحقق مثل "الرمز البريدي يجب أن يحتوي على أرقام فقط".

بعد ذلك ، يجب أن يكون لديك الحد الأدنى من الحقول - البلد والمدينة والرمز البريدي وخطرين للعنوان.

تحقق على سبيل المثال موقع طلب الكتاب هذا مع التسليم العالمي. ضع كتابًا في سلةك واتجه إلى الخروج لمعرفة: https://securepayment.bookdepository.co.uk/checkout/summary

نصائح أخرى

تحقق من هذا الموقع ، يحتوي على معلومات عن تنسيق العنوان لجميع البلدان ، يمكنك استخدامه كمرجع. تنسيقات العنوان الدولية

الطريقة التي أراها لديك خياران:

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>

حلان يمكنني التفكير فيهما هما:

  1. مجمع] تغيير متطلبات العنوان على أساس البلد.
  2. بسيط] فقط لديك منسدلة البلد وحقل عنوان واحد فقط حيث يمكن للمستخدم إدخال العنوان ، كما يود أنه يود فقط عرض محتويات هذا الحقل.

ما لم تكن بحاجة حقًا إلى تقسيم العنوان إلى حقول متعددة ، أعتقد أن الطريقة البسيطة لتخزين العنوان بأكمله في حقل واحد قد تكون الأفضل. بالطبع ، هذا يعني أن جدول العنوان الخاص بك لن يتم تطبيعه ولن تتمكن من التحقق من صحة العنوان الذي أدخله المستخدم- على الرغم من أن التحقق من الصحة سيكون معقدًا جدًا اعتمادًا على تصميم الكود الخاص بك. ولكن ، هذا عمل متوازن بين قابلية الاستخدام والتصميم والتعقيد.

أتمنى أن يساعدك هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top