الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارجوووووكم

مغلق
بدأه raujistc في 14 أبريل 2003 · 3 رد · 465 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني

عندي سؤال سهل

عندي برنامج ASP يسوي insert لــ Oracle datebase ولكن المشكله اني اضغط على تحديث يقوم بالادخال مرة اخرى وكلما ضغطت على تحديث يقوم بالادخال اريد حلا لهذة المشكلة

ولكم جزيل الشكر مقدما

والله انه رفع ضغطي:(

#2

انت وصلت لمرحلة جميلة من التفكير .. اعتقد تعبك و ارتفاع الضغط بعد ألف سلامة عليك فتح أفق جديدة عندك للتفكير البرمجي ..

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

كيف تقوم بالحفاظ على هذه الحالة بحيث لا تضيف اكثر من مرة ..

هناك طريقتين ..

الأولى و هي متعبة قليلا و نادرة و هي عمل دالة تتأكد من وجود القيم مسبقا في الجدول و إن كانت غير موجودة أضف و بالتالي يضيفها أول مرة أما غير ذلك فلا يقوم بالإدخال للبيانات ..

الطريقة الثانية و هي المفروض تتبعها ..

شوف دائما تخلي قيمة ال Action للنموذج كالتالي مثلا :

<form name=myForm  Action="insert.asp?job=insert" Method=post>

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

 job=request.QueryString("job")



 if job="insert" then

  ' insertion statments 

  response.redirect request.ServerVariables(29) & "?job=ok"

  response.end

 end if



 if job="ok" then

  response.write "تمت الاضافة بنجاح"

  response.addHeader "refresh","3;url=previousPage.asp"

  response.end

 end if

عند ادخال قيم و ارسالها من أجل ادخالها سوف تكون قيمة job=insert و بالتالي ستدخل في أول جملة شرط و يتم الادخال ثم يتم الانتقال مباشرة لنفس الصفحة لكن بتغيير قيمة job إلى ok و ذلك عن طريق response.redirect و الخاصة بإعادة التوجيه لصفحة معينة ..

طبعا الان لن يتحقق أول شرط و بالتالي لن تحدث عملية الادخال و ستدخل للشرط الثاني و الذي يعرض رسالة تقول بأن الادخال قد تم بنجاح ثم ينقلك بعد 3 ثواني للصفحة التي تود العودة إليها .. طبعا بامكانك ان تعمل تحديث لما تنزل الضغط اللي ارتفع من أول مرة :D ما راح يحدث ادخال تاني ..

أتمنى أن أكون نفعتك بعلمي و كل طلبي هو فقط أن تدعولي لاني كتبت لك الرد قبل ذهابي لامتحان صعب فدعواك لنا بالنجاح :)

You can fly while you can touch the sky

#3

الله يعطيك العافية

عساك تفلح دنى وآخرة

انا بجرب الطريقتين

إن شاء الله

#4

جرب الثانية أفضل .. للعلم الامتحان جاني صعب :D

You can fly while you can touch the sky

هذا الموضوع مغلق.

مواضيع مشابهة