تحديث البيانات

عندي موقع مصممه بلغة php وعندي مشكلة عند اضافة او تحديث بيانات وبعد الحفظ ما تظهر نتيجة الحفظ او التعديل مباشر بل بعد تحديث الصفحة مرة أخرى.

ما السبب في نظركم يا ترى ؟!

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

اتوقع ال cashing هو السبب.

اضغط على Ctrl+ F5

السبب في الأغلب هو أنك تسحب بيانات التعديل قبل معالجة POST وليس بعدها ، بالتالي دوما سيكون لديك النسخة قبل الإضافة.

جرب حرك الجزء الخاص بسحب البيانات أسفل معالجة البوست.

بالفعل احيانا عند كتابة كود ما توجد مثل هذه المشاكل. @samymassoud‍ .

اشكرك.

waelaljamal أضف ردا

لكي تقوم بتحديث الصفحة بشكل مباشر عليك استخدام تقنيات تبادل البيانات التي تعمل بدون الحاجة لتحديث الصفحة.

أشهر تقنية هي AJAX فهي تقوم بإنشاء اتصال HTTP مع السيرفر و تمكنك من ارسال أو جلب البيانات وعندها يمكنك تحديث محتوى محدد في الصفحة الخاصة بك مباشرة

تعريف AJAX: هو اختصار لـ Asynchronous JavaScript (جافا سكربت غير المتزامنة أي أن الأحداث تنتج عن ضغط أزرار مثلا كاستجابة لفعل المستخدم)و XML وهذه التقنية تساعدنا على تحميل البيانات من الخادم دون تحديث صفحة المتصفح.

JQuery هي أداة رائعة توفر مجموعة غنية من أساليب AJAX لتطوير تطبيقات الويب(بالإضافة لعملها في إضافة تأثيرات و animation لصفحات الويب و تغيير Css ..).

مثال:

عند الضغط على الزر button يتم تنفيذ function بدوره يستدعي AJAX ليتصل على URL ويجلب البيانات من السيرفر وفي حال النجاح success (اتصال صحيح) يتم تنفيذ التابع الآخر الذي يأخذ parameter المتحول result (نتائج الاتصال) و يقوم باسناد محتواه في العنصر #div1

رابط المثال:

معالجة طلب Http Reaquest

حدث في المتصفح نتيجة ضغط المستخدم أحد الأزرار => إنشاء عنصر Http Reaquest و إرسالة للسيرفر => معالجة السيرفر للطلبية و إعادة النتيجة للمتصفح.

رابط يشرح تقنية AJAX:

شرح مفصل لاستخدام AJAX مع jQuery

وكنصيحة استخدم AJAX مع مكتبة jQuery لأنها تبسط و تسهل التعامل معها

alqasi أضف ردا

اشكرك @waelaljamal‍ 

ردك ممتاز ومتسق، قراته ولكن لعدم المامي بلغة الجافا لم استطع استخدامه.

اشكركم، جميعا على تجاوبكم، أنتم بصراحة من أفضل الاعضاء المجيبين للتسائلات.

وفقكم الله، انا جربت حلول قبل ردكم علي وانحلت المشكلة.

ayoubridouani أضف ردا

أمر طبيعي أن يحصل معك هدا الأمر بسبب أنك لم تطلبي من السرفر Get Request لجلب البيانات مباشرة بعد الإضاقة أو التعديل.

لتقومي بدلك عليك استعمال ajax أو web socket لكن هناك trick بسيطة قد تساعدك وهي بإضافة توجيه للسرفر بعد الإضافة أو التعديل باستعمال دالة header موجودة بال php يمكنك أخد تفاصيلها وبعض الأمثلة عنها من هنا: