ووردبريس

استعلام Ajax في ووردبريس باستخدام Select2 لجلب البيانات من قاعدة البيانات

قد يكون تحميل البيانات من قاعدة بيانات إلى واجهة مستخدم تعتمد على تقنيات جافا سكريبت مثل JQuery Select2 باستخدام أسلوب Ajax أحد أكثر الميزات إثارة في تطوير التطبيقات الحديثة. في هذا المقال، سنستعرض كيفية استخدام Wordpress Select2 Ajax query call data from DB لجعل تجربة المستخدم أكثر سلاسة وسرعة.

إعداد الأجزاء الأساسية في Wordpress

للبدء، يجب أولاً تجهيز وظيفة لتحميل المكتبات اللازمة إلى موقع Wordpress الخاص بك. يمكن تحقيق ذلك عن طريق إضافة الوظيفة التالية إلى ملف functions.php:

function enqueue_select2() {
    wp_enqueue_style('select2-css', 'https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css');
    wp_enqueue_script('select2-js', 'https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'enqueue_select2');

هذه الدالة تضيف ملفات CSS و JavaScript اللازمة لمكتبة Select2 إلى الصفحة.

إنشاء استعلام البيانات من قاعدة البيانات

بعد ذلك، سوف نحتاج إلى وظيفة لاسترجاع البيانات من قاعدة البيانات بناءً على مدخلات المستخدم. إليك نموذج دالة يمكنك استخدامها لتحقيق ذلك:

function get_locations_for_select2() {
    global $mysqli; // استخدم الاتصال بقاعدة البيانات
    $searchTerm = $_GET['searchTerm']; // الحصول على مصطلح البحث
    $sql_loc = "SELECT t.term_id, t.name as term_name, slug 
                FROM wplw_terms t 
                INNER JOIN wplw_term_taxonomy tax ON tax.term_id = t.term_id 
                WHERE taxonomy = 'at_biz_dir-location' AND slug LIKE '%-state' AND t.name LIKE '" . $mysqli->real_escape_string($searchTerm) . "%' 
                ORDER BY t.name ASC 
                LIMIT 20;";
    $results = $mysqli->query($sql_loc);
    $data = [];
    if ($results->num_rows > 0) {
        while ($row = $results->fetch_assoc()) {
            $data[] = array("id" => $row['term_id'], "text" => $row['term_name']);
        }
    }
    echo json_encode($data);
}

تكوين استدعاء Ajax من جانب العميل

بعد ضبط استعلام قاعدة البيانات، نحتاج الآن إلى إعداد الجوانب المتعلقة بالجانب العميل. يمكنك إضافة الكود التالي داخل عنصر Elementor حيث تريد عرض القائمة المنسدلة:

<select id="location-select" style="width: 100%">
    <option value="">اختر الموقع</option>
</select>
<script>
jQuery(document).ready(function($) {
    $('#location-select').select2({
        placeholder: "اختر الموقع",
        ajax: {
            url: '<?php echo admin_url("admin-ajax.php"); ?>',
            dataType: 'json',
            delay: 250,
            data: function (params) {
                return {
                    searchTerm: params.term // تمرير مصطلح البحث إلى الخادم
                };
            },
            processResults: function (data) {
                return {
                    results: data
                };
            },
            cache: true
        },
        minimumInputLength: 1 // الحد الأدنى من المدخلات للبحث
    });
});
</script>

بعض النقاط المهمة

من المهم التأكد من تمرير مصطلح البحث $searchTerm من جانب العميل إلى الخادم عبر Ajax. هذا يسمح لك بتنفيذ الاستعلام بشكل ديناميكي بناءً على إدخالات المستخدم. في الكود أعلاه، يتم تمرير مصطلح البحث المدخل إلى $searchTerm باستخدام params.term، مما يتيح لك التعامل مع البيانات بشكل أكثر كفاءة.

خاتمة

باستخدام تشكيلات Ajax و Select2 في Wordpress، يمكن لمطوري الويب تحقيق تجربة مستخدم مميزة وسريعة. استنادًا إلى ما تم شرحه، يُمكنك facilmente تجهيز قائمة منسدلة تعتمد على البيانات من قاعدة البيانات وتحسين قابلية الاستخدام بشكل كبير. إن استخدام تقنيات مثل هذه يسهل الكثير من الأمور ويعزز من كفاءة وتفاعل المستخدمين مع موقعك على الإنترنت.

احمد علي

متخصص في مجال تطوير وإدارة المواقع الإلكترونية، يتمتع بخبرة واسعة في التعامل مع منصات إدارة المحتوى، خاصة ووردبريس. يقدم أحمد حلولاً مبتكرة واستراتيجيات فعالة لتحسين أداء المواقع وتطوير تصميماتها بما يتناسب مع احتياجات المستخدمين. كما يتميز بقدرته على تبسيط المفاهيم التقنية وكتابة محتوى تعليمي يساعد الأفراد والشركات على تحسين تواجدهم الرقمي وتحقيق أهدافهم على الإنترنت.
زر الذهاب إلى الأعلى
Don`t copy text!