شرح صفوف ومحتوى الفقرة
يربط نظام البحث الفوري المباشر (Autocomplete) حقل البحث في الواجهة الأمامية بنقطة نهاية PHP متصلة بقاعدة البيانات عبر PDO لإرجاع النتائج المطابقة أثناء كتابة المستخدم.
- يستمع المتصفح لحدث الكتابة
inputفي حقل البحث وينتظر توقفاً قصيراً قبل استدعاءfetch("/api/search.php?q=..."). - يتحقق ملف PHP من طول نص البحث، وينفذ استعلاماً محضراً
WHERE title LIKE :q LIMIT 8عبر PDO، ثم يرجع النتائج بصيغة JSON. - تقوم الواجهة الأمامية بتفريغ القائمة المنسدلة وعرض العناصر المطابقة بأمان.
يمنع فرض الشرط mb_strlen($q) >= 2 في المتصفح والخادم معاً استعلامات البحث المكلفة المكونة من حرف واحد فقط.
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";