اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك برمجة هذه القائمة من خلال وسم select بحيث تقوم بإدخال الدول و مفتاح كل دولة بشكل يدوي إلى قاعدة البيانات و من ثم عرضها في select أو يمكنك استخدام حزمة مثل حزمة 

composer require pragmarx/countries

أو الحزمة التالية 

https://github.com/TappNetwork/nova-select-country-code

 

  • 0
نشر

مثلما يمكنك إستعمال واحدة من الحزم الجاهزة لذلك , يمكنك بكل حال من الأحوال نمذجة الفكرة و تطبيقها بخصوصية عالية . 

لنقل أن الفكرة تتبع المنطق التالي : 

  1. HTML :
  • تعريف عنصر قائمة منسدلة select , تحمل كخيارات مجموعة الدول . بحيث يحمل كل خيار خاصية value بقيمة الرقم الدولي المرافق لهاته الدولة . 
  • تعريف حقل إدخال نصي .   

   2. JS : 

  • يجب إضافة حدث عند الكتابة في حقل الإدخال النصي , ففي حالة مطابقة النص المدخل من طرف المستخدم لقيمة خاصية value لخيار ما في القائمة المنسدلة , يتم تحديده تلقائيا .  

مثال عملي :  

يمكنك بأي حال من الأحوال طباعة قائمة الدول بأي طريقة , و سيتم إختيار تكرار foreach في لارافيل للقيام بذلك . كما أن تنسيق العنصر يتم بخصوصية عالية , و لذلك سنستخدم صفوف بوتستراب كمثال . 

لنقم بتعريف الهيكلية التالية :  

<div class="col-12 d-flex flex-wrap">
        <select id="countryList" class="col-lg-3 form-control">    
            @foreach ($countries as $country)
                <option value="{{ $country->phonecode }}"> 
                    {{ $country->name }}
                </option>
            @endforeach
        </select>

        <input type="text" 
               id="typeNumber" 
               class="form-control col-lg-9" 
               placeholder="قم بإدخال رقم هاتفك مرفقا بالكود الدولي">
</div>

ثم لنقم بإضافة شيفرات الجافاسكربت لتقوم بالوظائف الموصوفة سابقا , و ذلك كالتالي : 

var typeNumber = document.querySelector('#typeNumber'),
    countryList = document.querySelector('#countryList');

typeNumber.addEventListener('keypress' , function(){
    var countryCode = this.value;

    if(!! document.querySelector('option[value="' + countryCode + '"]')) {
         countryList.value = countryCode;
    }
});

أو بسياق الـ jQuery : 

var typeNumber = $('#typeNumber'),
    countryList = $('#countryList');

typeNumber.on('keypress' , function(){
    var countryCode = $(this).val();

    if(!! $('option[value="' + countryCode + '"]')) {
         countryList.val(countryCode);
    }
});

و بشكل عام , سيمكنك تخصيص منطق عملها وفق احتياجك ووفق ما يلائم فكرتك , كأن تقوم بإعادة تشكيل هيكلية الـ HTML لتتضمن صورة مصغرة للعلم الوطني لكل دولة أو تغير طريقة التحديد لكل عنصر أو أية فكرة أخرى قد يحتاجها أي تعديل . 

يمكنك التحصل على قائمة بإسم الدولة مرافقا لها رقمها الدولي من هنا

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...