اذهب إلى المحتوى

السؤال

نشر

سلام عليكم

قمت بمحاولة لتنفيذ امر حذف من قاعدة البيانات باستخدام jQuery 

لكن الامر لا يتم تنفيذه 

اريد معرفة خطئي من فضلكم

كود الزر المخصص للحذف

<button type="button" supplier="' . $row['id'] . '" class="btn btn-danger delete">حذف</button>

السكربت 

$(".delete").click(function() {
	 
	  

            var id = $(this).attr("supplier");

            Swal.fire({

                title: 'هل أنت متأكد؟',

                text: "سيتم الحذف!",

                icon: 'warning',

                confirmButtonColor: '#d33',

                cancelButtonColor: '#3085d6',

                confirmButtonText: 'حذف',

                cancelButtonText: 'إلغاء',

                showCancelButton: true,

                showCloseButton: true

            }).then((result) => {

                if (result.isConfirmed) {

                    $.post({

                        url: "requests/supplier_functions.php",

                        data: {
                            "action":'delete',

                            "id": id

                        },

                        success: function(data) {

                            if (data == "done") {

                                location.reload();

                            } else {

                                console.log(data);

                            }

                        }

                    });

                }

            });

        });

كود ملف الحذف

<?

include("../includes/db.php"); //db connection

$action = $_POST['action']; //تعريف متغير التنفيذ

switch ($action){

    case 'delete':

        $id = $_POST['id'];

        $result = $conn->query("DELETE FROM `supplier` WHERE id='$id'");

        if ($result == true) {
            echo "done";
        } else{
            echo "Errormessage: %s\n". $conn->error;
        }

        break;

    default:
        echo "done";
}

انتظر المساعدة و شكرا لكم

Recommended Posts

  • 0
نشر

في شيفرة PHP:

$result = $conn->query("DELETE FROM `supplier` WHERE id='$id'");
                                                        ^   ^
=>

$result = $conn->query("DELETE FROM `supplier` WHERE id=$id");

أو

$result = $conn->query("DELETE FROM `supplier` WHERE id=" . $id);

إن وضع متغير ضمن اقتباس أحادي يأخذ ماداخله كنص، أما في حالة الاقتباس الثائي سيعمل على استبدال القيمة الموافقة للمتغير

  • 0
نشر
بتاريخ 1 دقيقة مضت قال محمد المصري5:

شكرا لك ، شلت الاقتباس الاحادي ، لكن ما زالت نفس المشكلة

لنعرف إن كان يتم تمرير العبارة بشكل صحيح وأن قيمة id تصل بالقيمة التي نريدها يمكننا طباعة عبارة SQL قبل تنفيذها:

$id = $_POST['id'];

$sql_statement = "DELETE FROM `supplier` WHERE id=$id";

echo $sql_statement;

//...

$result = $conn->query("DELETE FROM `supplier` WHERE id='$id'");

ولنعمل على طباعة إجابة السيرفر مهما تكن في حالة sucsess:

success: function(data) {
console.log(data);
                         

وراقب console 

  • 0
نشر

اللي اتكتب لي في ال console هو محتوى شيفرة php الخاصة بالحذف كاملة

<?

include("../includes/db.php"); //db connection

$action = $_POST['action']; //تعريف متغير التنفيذ

switch ($action){

    case 'delete':

        $id = $_POST['id'];

        $result = $conn->query("DELETE FROM `supplier` WHERE id=$id ");

        if ($result == true) {
            echo "done";
        } else{
            echo "Errormessage: %s\n". $conn->error;
        }

        break;

    default:
        echo "done";
}

 

  • 0
نشر
بتاريخ 3 دقائق مضت قال محمد المصري5:

اللي اتكتب لي في ال console هو محتوى شيفرة php الخاصة بالحذف كاملة

ولكن أين التعديل؟ لماذا طبع كامل محتوى الصفحة!

نريد عمل طباعة فقط لعبارة SQL ولا أرى أنك وضع التعديل 

$sql_statement = "DELETE FROM `supplier` WHERE id=$id";

echo $sql_statement;

 

  • 0
نشر
بتاريخ 6 دقائق مضت قال محمد المصري5:

لو حضرتك تقصد تعديل ازالة علامة الاقتباس الاحادي فانا شلتها فعلا 

هل يمكنك استبدال شيفرة PHP مؤقتا بالتالي:

<?

include("../includes/db.php"); //db connection

$action = $_POST['action']; //تعريف متغير التنفيذ

switch ($action){

    case 'delete':

        $id = $_POST['id'];
		$sql_statement = "DELETE FROM `supplier` WHERE id=$id";

		echo $sql_statement;

        $result = $conn->query($sql_statement);

        if ($result == true) {
            echo "done";
        } else{
            echo "Errormessage: %s\n". $conn->error;
        }

        break;

    default:
        echo "done";
}

و في دالة sucsess أرجو وضع console مباشرة قبل اختبار البيانات لنتأكد من الخرج:

success: function(data) {
console.log(data);

  if (data == "done") {

  location.reload();

  } else {

  console.log(data);

  }

}

ثم أرجو إرفاق صورة ل console

  • 0
نشر

@محمد المصري5

المشكلة في مخدم PHP لديك. تأكد من تشغيل المخدم وأنه يعمل بصورة طبيعية مثلا شيفرة PHP لطباعة جمله بسيطة

<?php

echo '<h1> Hi Mohammad </h1>';

حاول تشغيل هذا الملف مثلا.

حتى يعمل مخدم XAMP يجب وضع شيفرات PHP ضمن المجلد الخاص ضمن مسار المخدم 

C:\xampp\htdocs

أو WAMPP في مجلد WWW.

  • 0
نشر
بتاريخ 12 دقائق مضت قال محمد المصري5:

شغال يا استاذي 

الصفحة تعمل جيدا جدا ما عدا امر الحذف

لو فيه مشكلة في مخدم php لن تفتح صفحة التعديل و لا عرض المزيد

هل يمكنك تعديل بادئة الصفحة لتصبح بالشكل التالي:

<?php

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...