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

Returning Field Validation Errors as JSON إرجاع أخطاء التحقق لكل حقل بصيغة JSON (422)

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

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

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

بدلاً من تحويل المسار عند فشل التحقق، يضبط معالج نماذج AJAX رمز الحالة http_response_code(422) ويُرجع مصفوفة أخطاء errors مفهرسة باسم كل حقل.

  • اجمع رسائل الخطأ لكل حقل في مصفوفة ترابطية مثل $errors["email"] = "البريد الإلكتروني غير صالح.".
  • إذا لم تكن مصفوفة $errors فارغة، أرسل رمز الحالة 422 مع كائن {"ok": false, "errors": $errors}.
  • تمر الواجهة الأمامية على مفاتيح data.errors، وتضبط الخاصية aria-invalid="true" لكل حقل خاطئ وتعرض رسالته تحته مباشرة.

يتيح إرجاع جميع أخطاء الحقول دفعة واحدة في استجابة 422 للمستخدم تصحيح كافة المدخلات دون فقدان ما كتبه في النموذج.

PHP
<?php
$_POST = ['email' => 'not-an-email', 'comment' => 'Hi'];
$errors = [];

if (!filter_var($_POST['email'] ?? '', FILTER_VALIDATE_EMAIL)) {
    $errors['email'] = 'Please enter a valid email address.';
}
if (mb_strlen(trim((string) ($_POST['comment'] ?? ''))) < 10) {
    $errors['comment'] = 'Comment must be at least 10 characters.';
}

http_response_code(422);
echo json_encode(['ok' => false, 'errors' => $errors]) . "\n";