عندي موقع مصممه بلغة php وعندي مشكلة عند اضافة او تحديث بيانات وبعد الحفظ ما تظهر نتيجة الحفظ او التعديل مباشر بل بعد تحديث الصفحة مرة أخرى.
ما السبب في نظركم يا ترى ؟!
السبب في الأغلب هو أنك تسحب بيانات التعديل قبل معالجة POST وليس بعدها ، بالتالي دوما سيكون لديك النسخة قبل الإضافة.
جرب حرك الجزء الخاص بسحب البيانات أسفل معالجة البوست.
بالفعل احيانا عند كتابة كود ما توجد مثل هذه المشاكل. @samymassoud .
اشكرك.
لكي تقوم بتحديث الصفحة بشكل مباشر عليك استخدام تقنيات تبادل البيانات التي تعمل بدون الحاجة لتحديث الصفحة.
أشهر تقنية هي AJAX فهي تقوم بإنشاء اتصال HTTP مع السيرفر و تمكنك من ارسال أو جلب البيانات وعندها يمكنك تحديث محتوى محدد في الصفحة الخاصة بك مباشرة
عند الضغط على الزر button يتم تنفيذ function بدوره يستدعي AJAX ليتصل على URL ويجلب البيانات من السيرفر وفي حال النجاح success (اتصال صحيح) يتم تنفيذ التابع الآخر الذي يأخذ parameter المتحول result (نتائج الاتصال) و يقوم باسناد محتواه في العنصر #div1
رابط المثال:
حدث في المتصفح نتيجة ضغط المستخدم أحد الأزرار => إنشاء عنصر Http Reaquest و إرسالة للسيرفر => معالجة السيرفر للطلبية و إعادة النتيجة للمتصفح.
رابط يشرح تقنية AJAX:
شرح مفصل لاستخدام AJAX مع jQuery
وكنصيحة استخدم AJAX مع مكتبة jQuery لأنها تبسط و تسهل التعامل معها
اشكرك @waelaljamal
ردك ممتاز ومتسق، قراته ولكن لعدم المامي بلغة الجافا لم استطع استخدامه.
أمر طبيعي أن يحصل معك هدا الأمر بسبب أنك لم تطلبي من السرفر Get Request لجلب البيانات مباشرة بعد الإضاقة أو التعديل.
لتقومي بدلك عليك استعمال ajax أو web socket لكن هناك trick بسيطة قد تساعدك وهي بإضافة توجيه للسرفر بعد الإضافة أو التعديل باستعمال دالة header موجودة بال php يمكنك أخد تفاصيلها وبعض الأمثلة عنها من هنا:
التعليقات