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

Building an Interactive AJAX Poll Endpoint بناء نظام استطلاع رأي وتصويت فوري بـ AJAX

أرسل النماذج بدون تحديث الصفحة باستخدام FormData، وأرجع أخطاء التحقق لكل حقل من PHP، وابنِ نظام تصويت تفاعلي فوري.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

من أشهر التطبيقات العملية لتكامل PHP و AJAX بناء نظام استطلاع رأي تفاعلي يصوت فيه المستخدم فتظهر له نسب التصويت المحدثة فوراً دون مغادرة الصفحة.

  • تحقق من أن معرف الخيار المرسل option_id عدد صحيح وموجود ضمن خيارات الاستطلاع المتاحة.
  • زِد عداد الأصوات في قاعدة البيانات باستعلام محضر ذري UPDATE poll_options SET votes = votes + 1 WHERE id = :id.
  • احسب النسبة المئوية لكل خيار عبر round(($votes / max(1, $total)) * 100, 1) وأرجع النتائج المحدثة بصيغة JSON.

يحمي استخدام max(1, $total) من خطأ القسمة على صفر، وتضمن array_values() إخراج مصفوفة JSON مرقمة بانتظام.

مخطط تدفق التنفيذ العملي لقسم بناء نظام استطلاع رأي وتصويت فوري بـ AJAX في لغة PHP
PHP
<?php
$options = [
    1 => ['label' => 'PHP 8.4', 'votes' => 78],
    2 => ['label' => 'TypeScript', 'votes' => 30],
];
$votedId = 1;
$options[$votedId]['votes']++;

$total = array_sum(array_column($options, 'votes'));
foreach ($options as &$opt) {
    $opt['percent'] = round(($opt['votes'] / max(1, $total)) * 100, 1);
}
echo json_encode(['ok' => true, 'total' => $total, 'options' => array_values($options)]) . "\n";