السلام عليكم اخواني
عندي سؤال سهل
عندي برنامج ASP يسوي insert لــ Oracle datebase ولكن المشكله اني اضغط على تحديث يقوم بالادخال مرة اخرى وكلما ضغطت على تحديث يقوم بالادخال اريد حلا لهذة المشكلة
ولكم جزيل الشكر مقدما
والله انه رفع ضغطي:(
السلام عليكم اخواني
عندي سؤال سهل
عندي برنامج ASP يسوي insert لــ Oracle datebase ولكن المشكله اني اضغط على تحديث يقوم بالادخال مرة اخرى وكلما ضغطت على تحديث يقوم بالادخال اريد حلا لهذة المشكلة
ولكم جزيل الشكر مقدما
والله انه رفع ضغطي:(
انت وصلت لمرحلة جميلة من التفكير .. اعتقد تعبك و ارتفاع الضغط بعد ألف سلامة عليك فتح أفق جديدة عندك للتفكير البرمجي ..
شوف عادة اذا كنت تستخدم ادخال او ارسال ايميل تظهر مشكلة التكرار و أيضا في الحذف لأن السجل يكون انحذف لكن في حكاية التعديل فهي لا تسبب مشكلة لانه مهما تعدل راح تحافظ على الحالة الجديدة للقيم ..
كيف تقوم بالحفاظ على هذه الحالة بحيث لا تضيف اكثر من مرة ..
هناك طريقتين ..
الأولى و هي متعبة قليلا و نادرة و هي عمل دالة تتأكد من وجود القيم مسبقا في الجدول و إن كانت غير موجودة أضف و بالتالي يضيفها أول مرة أما غير ذلك فلا يقوم بالإدخال للبيانات ..
الطريقة الثانية و هي المفروض تتبعها ..
شوف دائما تخلي قيمة ال 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
الله يعطيك العافية
عساك تفلح دنى وآخرة
انا بجرب الطريقتين
إن شاء الله
هذا الموضوع مغلق.