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

السؤال

نشر

سلام عليكم

ببساطة عندي فورم تعديل بيانات كالتالي

<form class="needs-validation-thread" action="javascript:added(); return false;" novalidate>

و قمت بعمل الازرار كالتالي

<button class="btn btn-success center-submit m7md1 size19" type="update">تحديث البيانات</button>
<button class="btn btn-danger center-submit m7md1 size19" type="submit">إضافة كجديد</button>

امر ال jQuery لتنفيذ اوامر زر التحديث انا حاططها بملف اسمه 

updateThread.php

 و مضمنه كالتالي

<?php require (ROOT  ."/includes/js/updateThread.php"); ?>

و امر تنفيذ الاضافة موجود في ملف اسمه addThread.js و مضمنه كالتالي

<script src="./includes/js/addThread.js">

كيف يمكن اعطاء الاوامر للفورم انه في حال الضغط على زر تحديث خذ تعليماتك و نفذ المطلوب من خلال ملف updateThread.php و هي كالتالي

<script>//        thread
(function() {

'use strict';

window.addEventListener('load', function() {

var forms = document.getElementsByClassName('needs-validation-thread');

var validation = Array.prototype.filter.call(forms, function(form) {

form.addEventListener('submit', function(event) {

// console.log(form.reportValidity());

if (form.checkValidity() === false) {

event.preventDefault();

event.stopPropagation();

} else {

var form_data = new FormData();


var name = $(".name").val(),

fiber = $(".fiber-thread").val(),

num = $(".num-thread").val(),

color = $(".degree-code[data='thread']").val(),

pantone = $(".panton-code[data='thread']").val(),

height = $(".height-thread").val(),

weight = $(".weight-thread").val(),

factory = $(".factory-thread").val(),

tprice = $(".tPrice-thread").val(),

mprice = $(".mPrice-thread").val();

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

form_data.append('type', "updatethread");
form_data.append('id', <?php echo $id; ?>);
form_data.append('name', name);
form_data.append('fiber', fiber);
form_data.append('num', num);
form_data.append('color', color);
form_data.append('pantone', pantone);
form_data.append('height', height);
form_data.append('weight', weight);
form_data.append('factory', factory);
form_data.append('tprice', tprice);
form_data.append('mprice', mprice);
form_data.append('image', file_data);

//console.log(form_data);


$.ajax({

url: "functions/addAccessories.php",

dataType: 'text',

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.href = "accessories/thread/thread-view.php?id=<?php echo $id; ?>";

}

})

} else {

Swal.fire({

icon: 'error',

title: 'حدث خطأ حاول مجددا',

confirmButtonText: 'حسنا',

showCloseButton: true

});

console.log(data);

}

}

});

}

form.classList.add('was-validated');

}, false);

});

}, false);

})();
function added() {}

$(".tPrice-thread , .height-thread , .weight-thread , .total-weight").on("keyup", function() {

if ($(".moth[value='one']").is(":checked")) {

var price = $(".tPrice-thread").val(),

height = $(".height-thread").val();

$(".mPrice-thread").val(price / height);

}else {

var price = $(".tPrice-thread").val(),

weight = $(".weight-thread").val(),

total = $(".total-weight").val();

var height = (10/weight)*total;

$(".height-thread").val(height);

$(".mPrice-thread").val(price / height);

}


});

$(".moth").change(function() {

var moth = $(this).val();

if (moth == "one") {

$(".one").show();

$(".two").hide();

$(".height-thread").removeAttr("disabled");

} else {

$(".one").show();

$(".two").show();

$(".height-thread").attr("disabled","disabled");

}

});

$(".factories").change(function() {

var factory = $(this).val();

$(".factory-thread").val(factory);

document.getElementsByClassName('close-factory')[0].click();


});
</script>

و في حال الضغط على زر اضافة جديد قم بتنفيذ تعليماتك من خلال ملف addThread.js و هي كالتالي

//        thread
        (function() {

            'use strict';

            window.addEventListener('load', function() {

                var forms = document.getElementsByClassName('needs-validation-thread');

                var validation = Array.prototype.filter.call(forms, function(form) {

                    form.addEventListener('submit', function(event) {

                        // console.log(form.reportValidity());

                        if (form.checkValidity() === false) {

                            event.preventDefault();

                            event.stopPropagation();

                        } else {

                            var form_data = new FormData();


                           var name = $(".name").val(),
							
							   fiber = $(".fiber-thread").val(),

                                num = $(".num-thread").val(),

                                color = $(".degree-code[data='thread']").val(),

                                pantone = $(".panton-code[data='thread']").val(),

                                height = $(".height-thread").val(),

                                weight = $(".weight-thread").val(),

                                factory = $(".factory-thread").val(),

                                tprice = $(".tPrice-thread").val(),

                                mprice = $(".mPrice-thread").val();

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

                            form_data.append('type', "thread");
							form_data.append('name', name);
                            form_data.append('fiber', fiber);
                            form_data.append('num', num);
                            form_data.append('color', color);
                            form_data.append('pantone', pantone);
                            form_data.append('height', height);
                            form_data.append('weight', weight);
                            form_data.append('factory', factory);
                            form_data.append('tprice', tprice);
                            form_data.append('mprice', mprice);
                            form_data.append('image', file_data);

                            //console.log(form_data);


                            $.ajax({

                                url: "functions/addAccessories.php",

                                dataType: 'text',

                                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);

                                    }

                                }

                            });

                        }

                        form.classList.add('was-validated');

                    }, false);

                });

            }, false);

        })();
        function added() {}

        $(".tPrice-thread , .height-thread , .weight-thread , .total-weight").on("keyup", function() {

            if ($(".moth[value='one']").is(":checked")) {

                var price = $(".tPrice-thread").val(),

                    height = $(".height-thread").val();

                $(".mPrice-thread").val((price / height).toFixed(3));

            }else {

                var price = $(".tPrice-thread").val(),

                    weight = $(".weight-thread").val(),

                    total = $(".total-weight").val();

                var height = (10/weight)*total;

                $(".height-thread").val(height);

               $(".mPrice-thread").val((price / height).toFixed(3));

            }


        });
		
		        $(".moth").change(function() {

            var moth = $(this).val();

            if (moth == "one") {

                $(".one").show();

                $(".two").hide();

                $(".height-thread").removeAttr("disabled");

            } else {

                $(".one").show();

                $(".two").show();

                $(".height-thread").attr("disabled","disabled");

            }

        });
		
		        $(".factories").change(function() {

            var factory = $(this).val();

            $(".factory-thread").val(factory);

            document.getElementsByClassName('close-factory')[0].click();


        });

انتظر تعليماتكم

Recommended Posts

  • 0
نشر

هناك فكرة بسيطة و هي class لكل زر فمن الممكن إعطاء كل زر class معين بهذا الشكل 

<button class="btn btn-success center-submit m7md1 size19 updateData" type="update">تحديث البيانات</button>
<button class="btn btn-danger center-submit m7md1 size19 addData" type="submit">إضافة كجديد</button>

و من ثم التعديل على الزر الخاص بالتحديث للبيانات بإضافة خاصية data-id  ويتم وضع id البوست أو التعليق الذي نود تحديث بياناته بهذا الشكل 

<button class="btn btn-success center-submit m7md1 size19 updateData" data-id="1" type="update">تحديث البيانات</button>
أو 
<button class="btn btn-success center-submit m7md1 size19 updateData" data-id="<?=$comment->id;?>" type="update">تحديث البيانات</button>

ومن ثم عند الضغط على زر تحديث نقوم بالتأكد من الزر المضغوط عليه في jQuery بهذا الشكل 

$(document).on('click', '.updateData', function(){
	
});

ومن ثم بداخل أقوام function في الكود السابق نقوم بجلب id المنشور أو التعليق 

$(document).on('click', '.updateData', function(){
	var id = $(this).data('id');
});

ومن ثم نقوم بوضع باقي الكود الذي يقوم بتنفيذ التحديثات على المنشور أو التعليق 

$(document).on('click', '.updateData', function(){
	var id = $(this).data('id');

	/// هنا باقي الكود
});

 

  • 0
نشر

الفكرة وصلت لكن الصعوبة في ضبطها مع الكود 

الزر الخاص بي كالتالي

<button class="btn btn-success center-submit m7md1 size19 updateData" data-id="<?php echo $id ; ?>" type="update">تحديث البيانات</button>

و الامر الذي اريد تنفيذه بعد وضعه كما تفضلت كالتالي

$(document).on('click', '.updateData', function(){
	var id = $(this).data('id');
	
//#################الكود#####################

(function() {

'use strict';

window.addEventListener('load', function() {

var forms = document.getElementsByClassName('needs-validation-thread');

var validation = Array.prototype.filter.call(forms, function(form) {

form.addEventListener('submit', function(event) {

// console.log(form.reportValidity());

if (form.checkValidity() === false) {

event.preventDefault();

event.stopPropagation();

} else {

var form_data = new FormData();


var name = $(".name").val(),

fiber = $(".fiber-thread").val(),

num = $(".num-thread").val(),

color = $(".degree-code[data='thread']").val(),

pantone = $(".panton-code[data='thread']").val(),

height = $(".height-thread").val(),

weight = $(".weight-thread").val(),

factory = $(".factory-thread").val(),

tprice = $(".tPrice-thread").val(),

mprice = $(".mPrice-thread").val();

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

form_data.append('type', "updatethread");
form_data.append('id', <?php echo $id; ?>);
form_data.append('name', name);
form_data.append('fiber', fiber);
form_data.append('num', num);
form_data.append('color', color);
form_data.append('pantone', pantone);
form_data.append('height', height);
form_data.append('weight', weight);
form_data.append('factory', factory);
form_data.append('tprice', tprice);
form_data.append('mprice', mprice);
form_data.append('image', file_data);

//console.log(form_data);


$.ajax({

url: "functions/addAccessories.php",

dataType: 'text',

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.href = "accessories/thread/thread-view.php?id=<?php echo $id; ?>";

}

})

} else {

Swal.fire({

icon: 'error',

title: 'حدث خطأ حاول مجددا',

confirmButtonText: 'حسنا',

showCloseButton: true

});

console.log(data);

}

}

});

}

form.classList.add('was-validated');

}, false);

});

}, false);

})();
//###### نهاية الكود ###########
});

لكن حين الضغط على الزر لا يستجيب

ما هو الخطأ الذي وقعت فيه ؟

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

الفكرة وصلت لكن الصعوبة في ضبطها مع الكود 

الزر الخاص بي كالتالي


<button class="btn btn-success center-submit m7md1 size19 updateData" data-id="<?php echo $id ; ?>" type="update">تحديث البيانات</button>

و الامر الذي اريد تنفيذه بعد وضعه كما تفضلت كالتالي


$(document).on('click', '.updateData', function(){
	var id = $(this).data('id');
	
//#################الكود#####################

(function() {

'use strict';

window.addEventListener('load', function() {

var forms = document.getElementsByClassName('needs-validation-thread');

var validation = Array.prototype.filter.call(forms, function(form) {

form.addEventListener('submit', function(event) {

// console.log(form.reportValidity());

if (form.checkValidity() === false) {

event.preventDefault();

event.stopPropagation();

} else {

var form_data = new FormData();


var name = $(".name").val(),

fiber = $(".fiber-thread").val(),

num = $(".num-thread").val(),

color = $(".degree-code[data='thread']").val(),

pantone = $(".panton-code[data='thread']").val(),

height = $(".height-thread").val(),

weight = $(".weight-thread").val(),

factory = $(".factory-thread").val(),

tprice = $(".tPrice-thread").val(),

mprice = $(".mPrice-thread").val();

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

form_data.append('type', "updatethread");
form_data.append('id', <?php echo $id; ?>);
form_data.append('name', name);
form_data.append('fiber', fiber);
form_data.append('num', num);
form_data.append('color', color);
form_data.append('pantone', pantone);
form_data.append('height', height);
form_data.append('weight', weight);
form_data.append('factory', factory);
form_data.append('tprice', tprice);
form_data.append('mprice', mprice);
form_data.append('image', file_data);

//console.log(form_data);


$.ajax({

url: "functions/addAccessories.php",

dataType: 'text',

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.href = "accessories/thread/thread-view.php?id=<?php echo $id; ?>";

}

})

} else {

Swal.fire({

icon: 'error',

title: 'حدث خطأ حاول مجددا',

confirmButtonText: 'حسنا',

showCloseButton: true

});

console.log(data);

}

}

});

}

form.classList.add('was-validated');

}, false);

});

}, false);

})();
//###### نهاية الكود ###########
});

لكن حين الضغط على الزر لا يستجيب

ما هو الخطأ الذي وقعت فيه ؟

حاول إزالة الأسطر التالية 

(function() {

'use strict';

});

و الأقواس المعكوفة الخاصة بها و محاولة تنفيذ الكود مرة أخرى.

  • 0
نشر
<script>
$(document).on('click', '.updateData', function(){
	var id = $(this).data('id');
	
//#################الكود#####################

window.addEventListener('load', function() {

var forms = document.getElementsByClassName('needs-validation-thread');

var validation = Array.prototype.filter.call(forms, function(form) {

form.addEventListener('submit', function(event) {

// console.log(form.reportValidity());

if (form.checkValidity() === false) {

event.preventDefault();

event.stopPropagation();

} else {

var form_data = new FormData();


var name = $(".name").val(),

fiber = $(".fiber-thread").val(),

num = $(".num-thread").val(),

color = $(".degree-code[data='thread']").val(),

pantone = $(".panton-code[data='thread']").val(),

height = $(".height-thread").val(),

weight = $(".weight-thread").val(),

factory = $(".factory-thread").val(),

tprice = $(".tPrice-thread").val(),

mprice = $(".mPrice-thread").val();

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

form_data.append('type', "updatethread");
form_data.append('id', <?php echo $id; ?>);
form_data.append('name', name);
form_data.append('fiber', fiber);
form_data.append('num', num);
form_data.append('color', color);
form_data.append('pantone', pantone);
form_data.append('height', height);
form_data.append('weight', weight);
form_data.append('factory', factory);
form_data.append('tprice', tprice);
form_data.append('mprice', mprice);
form_data.append('image', file_data);

//console.log(form_data);


$.ajax({

url: "functions/addAccessories.php",

dataType: 'text',

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.href = "accessories/thread/thread-view.php?id=<?php echo $id; ?>";

}

})

} else {

Swal.fire({

icon: 'error',

title: 'حدث خطأ حاول مجددا',

confirmButtonText: 'حسنا',

showCloseButton: true

});

console.log(data);

}

}

});

}

form.classList.add('was-validated');

}, false);

});

}, false);

();
//###### نهاية الكود ###########
});
//###############################################################
</script>

نفس الشئ اخي ، لا اجراء

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

<script>
$(document).on('click', '.updateData', function(){
	var id = $(this).data('id');
	
//#################الكود#####################

window.addEventListener('load', function() {

var forms = document.getElementsByClassName('needs-validation-thread');

var validation = Array.prototype.filter.call(forms, function(form) {

form.addEventListener('submit', function(event) {

// console.log(form.reportValidity());

if (form.checkValidity() === false) {

event.preventDefault();

event.stopPropagation();

} else {

var form_data = new FormData();


var name = $(".name").val(),

fiber = $(".fiber-thread").val(),

num = $(".num-thread").val(),

color = $(".degree-code[data='thread']").val(),

pantone = $(".panton-code[data='thread']").val(),

height = $(".height-thread").val(),

weight = $(".weight-thread").val(),

factory = $(".factory-thread").val(),

tprice = $(".tPrice-thread").val(),

mprice = $(".mPrice-thread").val();

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

form_data.append('type', "updatethread");
form_data.append('id', <?php echo $id; ?>);
form_data.append('name', name);
form_data.append('fiber', fiber);
form_data.append('num', num);
form_data.append('color', color);
form_data.append('pantone', pantone);
form_data.append('height', height);
form_data.append('weight', weight);
form_data.append('factory', factory);
form_data.append('tprice', tprice);
form_data.append('mprice', mprice);
form_data.append('image', file_data);

//console.log(form_data);


$.ajax({

url: "functions/addAccessories.php",

dataType: 'text',

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.href = "accessories/thread/thread-view.php?id=<?php echo $id; ?>";

}

})

} else {

Swal.fire({

icon: 'error',

title: 'حدث خطأ حاول مجددا',

confirmButtonText: 'حسنا',

showCloseButton: true

});

console.log(data);

}

}

});

}

form.classList.add('was-validated');

}, false);

});

}, false);

();
//###### نهاية الكود ###########
});
//###############################################################
</script>

نفس الشئ اخي ، لا اجراء

هل تحققت من Console و شاهدت ما هي الأخطاء التي تواجهك, أرجوا إرفاق نص المشكلة أو صورة للمشكلة عن طريق Console.

  • 1
نشر

بافتراض أن لديك form بهذا الشكل 

<form id="my-form">
    <input type="email" name="email" placeholder="(Your email)" />
    <button type="submit" value="button-one">Go - One</button>
    <button type="submit" value="button-two">Go - Two</button>
    <button type="submit" value="button-three">Go - Three</button>
</form>

لعمل لكل زر وظيفة يجب أن نقوم بلصق حدث نقر على كل الأزرار والتعامل مع الحدث قبل ال submit وذلك ببساطة يمكن تحقيقه بهذا الشكل 

$("#my-form button").click(function(ev){
    ev.preventDefault()// الغاء ال فورم
    if($(this).attr("value")=="button-one"){
        //يمنكك عمل وظيفة لكل زر بالتحقق منه
    }
    // $("#my-form").submit(); وهنا اذا أردت تشغيل الفورم
});

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...