شرح صفوف ومحتوى الفقرة
من أشهر التطبيقات العملية لتكامل 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 مرقمة بانتظام.
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";