• 0

[مشكلة] إضافة بيانات للداتابيز باستخدام JQuery

سلام عليكم

ساعدوني فضلا في ايجاد الخطأ 

انا بحاول اضيف بند لقاعدة البيانات باستخدام ajax  و بياناتي كالتالي

كود ال FORM  اهو 

                    <div class="container">

                        <div class="row text-center">

                            <div class="main-card col-12 mb-3 m-auto card">

                                <div class="card-body">

                                    <h3 class="card-title">إضافة بند توريد</h3>

                                    <form class="needs-validation" novalidate>

                                        <div class="form-row">

                                            <div class="col">

                                                <label>إسم البند</label>

                                                <div class="input-group">

                                                    <div class="input-group-prepend">

                                                        <span class="input-group-text"><i class="pe-7s-plus"></i></span>

                                                    </div>

                                                    <input type="text" class="form-control stitch-name" placeholder="إسم بند التوريد" required>

                                                    <div class="invalid-feedback">

                                                      إسم البند مطلوب

                                                    </div>

                                                </div>

                                            </div>

                                        </div>


                                        <div class="form-row">

                                            <button class="btn btn-primary center-submit upload-stitch" type="button">تأكيد</button>

                                        </div>

                                    </form>

                                </div>

                            </div>

                        </div>

                    </div>

و السكربت اهو

$('.upload-stitch').on('click', function() {

            $(this).attr("disabled", "disabled");

            //var file_data = $(".stitch-image").prop('files')[0];

            var name = $(".stitch-name").val();

            var form_data = new FormData();

            //form_data.append('image', file_data);

            form_data.append('name', name);

            $.ajax({

                url: 'modules/suppliers/add_item.php', // point to server-side PHP script 

                dataType: 'text', // what to expect back from the PHP script, if anything

                cache: false,

                contentType: false,

                processData: false,

                data: form_data,

                type: 'post',

                success: function(data) {

                                   if (data == "done") {

                                        Swal.fire({

                                            icon: 'success',

                                            title: 'تم اضافة البند',

                                            confirmButtonText: 'حسنا',

                                            showCloseButton: true

                                        }).then((result) => {

                                            if (result.isConfirmed) {

                                                location.reload();

                                            }

                                        })

                                    } else {

                                        Swal.fire({

                                            icon: 'error',

                                            title: 'غلط يا سيدي',

                                            confirmButtonText: 'حسنا',

                                            showCloseButton: true

                                        });

                                        console.log(data);

                                    }



                }

            });

        });

و ده ملف ال php لتنفيذ الامر

<?php

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



$name = $_POST['name'];


$result = $conn->query("INSERT INTO supplying_items(name) VALUES('$name',) ");



if ($result) {

    echo "done";

} else {

    echo ("error". $conn -> error);

}

 

مش راضي يقبل الاضافة نهائي ، ايه الغلطة بتاعتي ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

لم أجد خطأ في جافاسكربت أو HTML أرجو تجريب تعديل استعلام SQL:

$result = $conn->query("INSERT INTO supplying_items(name) VALUES($name)");

بوجود الاقتباس الفردي حول المتغير name$ لن يتم تعويض قيمته الفعلية بل سيتم وضع قيمة نص فعلية كـ name$ 

$name = "wael";

echo '$name'; => $name

echo "$name"; => wael

أحيانا يلزمنا في SQL بتحديد اسم الجدول والأعمدة باستخدام back ticks  (`) حرف ذ:

 

$sql = "INSERT INTO `supplying_items`(`name`) VALUES ($name)";

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يُمكنك دائما تتبع طلبات ajax من خلال قسم Network في أدوات المطورين للمتصفح لمعرفة نتيجة الطلب و معرفة سبب المُشكلة.

أعتقد أن لديك مُشكلة في كتابة الإستعلام هل يُمكنك تغيير السطر:

بتاريخ 1 ساعة قال محمد المصري5:

$result = $conn->query("INSERT INTO supplying_items(name) VALUES('$name',) ");

إلى التالي 

$result = $conn->query("INSERT INTO supplying_items (name) VALUES ($name)");

كما أنصحك بالإطلاع على: parameterized prepared statements للحماية من ثغرة SQL injection

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

شكرا لكم ايها الاساتذة الكرام

تم حل المشكلة بالتعديل التالي على ملف التنفيذ

<?php
include("../../includes/db.php");

	$name=$_POST['name'];
	$sql = "INSERT INTO `supplying_items`(`name`) VALUES ('$name')";
	if (mysqli_query($conn, $sql)) {
		
	echo "done";
	} 
	else {
		 echo ("error". $conn -> error);
	}
	mysqli_close($conn);
?>

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن