كمتابعة لإنشاء ملاحظات جديدة باستخدام النماذج وطرق الطلب، سنستكشف الآن كيفية تحرير وتحديث الملاحظات الموجودة في قاعدة البيانات باستخدام طريقة طلب التصحيح.
عندما يريد المستخدم تعديل ملاحظة، نحتاج إلى توفير طريقة له للوصول إلى شاشة التعديل. هذا هو المكان الذي يأتي فيه زر التعديل.
أولاً، نحتاج إلى إضافة زر تعديل أسفل الملاحظة على شاشة الملاحظة الواحدة في show.view.php عن طريق إزالة رمز زر الحذف من الملف. سينقل هذا الزر المستخدم إلى شاشة التعديل.
يتم وضع زر التعديل في قسم التذييل بصفحة عرض الملاحظات. عند النقر عليه، فإنه يعيد توجيه المستخدم إلى شاشة التحرير، ويمرر معرف الملاحظة كمعلمة في عنوان URL.
يتحكم ملفedit.php في عملية التحرير. يقوم باسترداد الملاحظة من قاعدة البيانات ويأذن للمستخدم بتحرير الملاحظة. إذا تم تفويض المستخدم، فسيتم عرض شاشة التعديل، مما يسمح للمستخدم بإجراء تغييرات على الملاحظة.
query('select * from notes where id = :id', [ 'id' => $_GET['id'] ])->findOrFail(); authorize($note['user_id'] === $currentUserId); view("notes/edit.view.php", [ 'heading' => 'Edit Note', 'errors' => [], 'note' => $note ]);
يستخدم ملفedit.php فئة قاعدة البيانات لاسترداد الملاحظة من قاعدة البيانات. ثم يتحقق مما إذا كان المستخدم مصرحًا له بتحرير الملاحظة من خلال مقارنة user_id بمعرف المستخدم الحالي. إذا تم التصريح بذلك، يتم عرض شاشة التعديل.
يحتوي ملفedit.view.php على كود لعرض نص الملاحظة للتحرير، مع زرين: تحديث وإلغاء.
زر التحديث: يرسل الملاحظة المحدثة إلى الخادم ويخزنها في قاعدة البيانات
زر الإلغاء: يلغي عملية التحرير ويعيد توجيه المستخدم مرة أخرى إلى شاشة الملاحظات.
= $errors['body'] ?>
تعرض طريقة عرض تحرير الملاحظة نص الملاحظة في منطقة النص، مما يسمح للمستخدم بإجراء التغييرات. يقوم زر التحديث بإرسال الملاحظة المحدثة إلى الخادم وتخزينها في قاعدة البيانات.
لتحديث ملاحظة، نحتاج إلى إنشاء ملف جديد باسم update.php الذي يتحقق من صحة الملاحظة ويتحقق أيضًا من ترخيص المستخدم. سيسمح هذا الملف فقط للمستخدمين المصرح لهم بعرض وتحرير الملاحظات الموجودة بالفعل في قاعدة البيانات.
query('select * from notes where id = :id', [ 'id' => $_POST['id'] ])->findOrFail(); // Check authorization authorize($note['user_id'] === $currentUserId); // Check validation $errors = []; if (!Validator::string($_POST['body'], 1, 100000)) { $errors['body'] = 'A body of no more than 1,000 characters is required.'; } // if no validation errors, then update if (count($errors)) { return view('notes/edit.view.php', [ 'heading' => 'Edit Note', 'errors' => $errors, 'note' => $note ]); } $db->query('update notes set body = :body where id = :id', [ 'id' => $_POST['id'], 'body' => $_POST['body'] ]); // redirect the user header('location: /notes'); die();
لتمكين تحرير وتحديث الملاحظات، نحتاج إلى إضافة المسارات التالية في Route.php:
$router->get('/note/edit', 'controllers/notes/edit.php'); $router->patch('/note', 'controllers/notes/update.php');
ستعمل هذه المسارات على تمكين تحرير الملاحظات وتحديثها باستخدام طريقة طلب التصحيح.
عندما يريد المستخدم تعديل ملاحظة، سيتم نقل المستخدم إلى شاشة التعديل حيث يمكن للمستخدم إجراء تغييرات على الملاحظة. عندما يقوم المستخدم بإرسال التغييرات، سيتم استدعاء ملف update.php. سيتحقق هذا الملف مما إذا كان المستخدم مصرحًا له بتحرير الملاحظة وما إذا كان التحقق من صحة الملاحظة صحيحًا. إذا نجح كلا الفحصين، فسيتم تحديث الملاحظة في قاعدة البيانات وسيتم إعادة توجيه المستخدم مرة أخرى إلى شاشة الملاحظات. إذا فشل أي من التحققين، فسيتم إعادة توجيه المستخدم مرة أخرى إلى شاشة التعديل مع ظهور رسائل خطأ.
باتباع هذه الخطوات يمكن للمستخدم تعديل الملاحظة وتحديثها بسهولة باستخدام طريقة طلب التصحيح.
أتمنى أن تكون قد فهمت الأمر بوضوح.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3