"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تحرير وتحديث الملاحظات باستخدام طريقة طلب التصحيح

تحرير وتحديث الملاحظات باستخدام طريقة طلب التصحيح

تم النشر بتاريخ 2024-08-19
تصفح:440

Editing and Updating Notes using PATCH Request Method

كمتابعة لإنشاء ملاحظات جديدة باستخدام النماذج وطرق الطلب، سنستكشف الآن كيفية تحرير وتحديث الملاحظات الموجودة في قاعدة البيانات باستخدام طريقة طلب التصحيح.

عندما يريد المستخدم تعديل ملاحظة، نحتاج إلى توفير طريقة له للوصول إلى شاشة التعديل. هذا هو المكان الذي يأتي فيه زر التعديل.

إضافة زر تحرير

أولاً، نحتاج إلى إضافة زر تعديل أسفل الملاحظة على شاشة الملاحظة الواحدة في 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'] ?>

Cancel

تعرض طريقة عرض تحرير الملاحظة نص الملاحظة في منطقة النص، مما يسمح للمستخدم بإجراء التغييرات. يقوم زر التحديث بإرسال الملاحظة المحدثة إلى الخادم وتخزينها في قاعدة البيانات.

تحديث الملاحظات

لتحديث ملاحظة، نحتاج إلى إنشاء ملف جديد باسم 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. سيتحقق هذا الملف مما إذا كان المستخدم مصرحًا له بتحرير الملاحظة وما إذا كان التحقق من صحة الملاحظة صحيحًا. إذا نجح كلا الفحصين، فسيتم تحديث الملاحظة في قاعدة البيانات وسيتم إعادة توجيه المستخدم مرة أخرى إلى شاشة الملاحظات. إذا فشل أي من التحققين، فسيتم إعادة توجيه المستخدم مرة أخرى إلى شاشة التعديل مع ظهور رسائل خطأ.

باتباع هذه الخطوات يمكن للمستخدم تعديل الملاحظة وتحديثها بسهولة باستخدام طريقة طلب التصحيح.

أتمنى أن تكون قد فهمت الأمر بوضوح.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/ghulam_mujtaba_247/editing-and-updating-notes-using-patch-request-method-14k7?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3