اسماعيل صدوقي نشر 28 يوليو 2021 أرسل تقرير نشر 28 يوليو 2021 مرحبا, لدي زر بعد الضغط عليه يرسل بيانات للكونترولر حتى يتم حفظها في قاعدة البيانات عن طريق ajax, لكن المشكلة انه لو كان الموقع بطيئ و ضغطت أكثر من مرة على الزر يتم ارسال البيانات و حفظها اكثر من مرة و هذا مايسبب لي مشاكل, كيف بامكاني المنع من ارسال request اكثر من مرة اي ينتظر حتى يتم الحفظ و اقوم باسترجاع الرد من ثم يقوم بارسال request آاخر؟ هذه صورة لما يحدث: 1 اقتباس
1 Wael Aljamal نشر 28 يوليو 2021 أرسل تقرير نشر 28 يوليو 2021 يمكنك وضع متغير بولياني تتغير قيمته مثلا من true إلى false بعد النقر على الزر، و حتى إسترجاع الطلب تعود على ماكانت عليه وستضع شرطا في اول جزء معالجة الطلب يختبر المتغير إن كان false يعمل return مباشرة. ويمكن وضع مؤقت زمني يضمن حصول تأخير بعد وصول الطلبية و الأفضل هنا عرض إشعار بنجاح إضافة البيانات، يفضل دمج الخاصتين سويا.و يمكنك ايضا إبطال الزر بعمل disable له حتى إكتمال الطلبية. getElementById("Button"). disabled = true 1 اقتباس
0 محمد أيت لعرايك نشر 29 يوليو 2021 أرسل تقرير نشر 29 يوليو 2021 إذا كنت تستخدم مكتبة Jquery يمكنك إستخدام الطريقة التالية: function saveData(){ $("#button").prop('disabled', true); // عند الضغط على الزر لأول مرة نقوم بتعطيل الزر $.ajax({ type: "post", url: "{{ url('route_name') }}", dataType: "json", data: $('#ajax').serialize(), success: function(data){ $("#button").prop('disabled', false); // ثم نقوم بتفعيل الزر مجددا عند الحصول على الإجابة }, error: function(data){ alert("Error") } }); }); } اقتباس
السؤال
اسماعيل صدوقي
مرحبا,
لدي زر بعد الضغط عليه يرسل بيانات للكونترولر حتى يتم حفظها في قاعدة البيانات عن طريق ajax,
لكن المشكلة انه لو كان الموقع بطيئ و ضغطت أكثر من مرة على الزر يتم ارسال البيانات و حفظها اكثر من مرة و هذا مايسبب لي مشاكل,
كيف بامكاني المنع من ارسال request اكثر من مرة اي ينتظر حتى يتم الحفظ و اقوم باسترجاع الرد من ثم يقوم بارسال request آاخر؟
هذه صورة لما يحدث:
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.