انتقل إلى محتوى الدرس

Architecture of AJAX Live Search معمارية نظام البحث الفوري المباشر Live Search

ابنِ محرك بحث فوري الإكمال التلقائي باستخدام PHP 8 واستعلامات PDO المحضرة بـ LIKE واستجابات JSON وتأخير الإدخال Debounce.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يربط نظام البحث الفوري المباشر (Autocomplete) حقل البحث في الواجهة الأمامية بنقطة نهاية PHP متصلة بقاعدة البيانات عبر PDO لإرجاع النتائج المطابقة أثناء كتابة المستخدم.

  • يستمع المتصفح لحدث الكتابة input في حقل البحث وينتظر توقفاً قصيراً قبل استدعاء fetch("/api/search.php?q=...").
  • يتحقق ملف PHP من طول نص البحث، وينفذ استعلاماً محضراً WHERE title LIKE :q LIMIT 8 عبر PDO، ثم يرجع النتائج بصيغة JSON.
  • تقوم الواجهة الأمامية بتفريغ القائمة المنسدلة وعرض العناصر المطابقة بأمان.

يمنع فرض الشرط mb_strlen($q) >= 2 في المتصفح والخادم معاً استعلامات البحث المكلفة المكونة من حرف واحد فقط.

مخطط توضيحي: محاكي البحث الفوري المباشر المتصل بـ PDO في PHP
PHP
<?php
$q = trim((string) ($_GET['q'] ?? 'pdo'));

if (mb_strlen($q) < 2) {
    echo json_encode(['ok' => true, 'count' => 0, 'results' => []]) . "\n";
    return;
}

echo json_encode([
    'ok'      => true,
    'query'   => $q,
    'pattern' => '%' . $q . '%',
]) . "\n";