asp-classic - ماهو - اكواد asp net




كيفية تنفيذ خانة الاختيار في أسب الكلاسيكية (2)

لدي مربع اختيار

<td><strong>Online Ordering: </strong></td>
<td><input type="checkbox" name="OnlineOrdering" value="<%=OnlineOrdering%>" <% if OnlineOrdering = True then response.write "checked='Checked'" end if %>/></td>

كيف يمكنني التقاط ما إذا كان مربع الاختيار محددا أو غير محدد عند إرسال النموذج؟

OnlineOrdering = request.form("OnlineOrdering")

هذا لا يعمل؟


هذا يجب تعيين صحيح / خطأ إلى المتغير أونلينأورديرينغ:

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
    OnlineOrdering = (Request.Form("OnlineOrdering") <> "")
End If

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

في نموذج هتمل، أنشئ مربعات اختيار تم إنشاؤها ديناميكيا. يمكن أن تكون قيمة this_box_id المستخدمة أدناه أي رقم فريد. في حالتي كان المفتاح الأساسي (أوتونمبر) لهذا السؤال من قاعدة بيانات سكل. إنشاء مربعات الاختيار ديناميكيا مع حقل مخفي مقترن:

<input type="hidden" name="check_box_indicator" value="<%=this_box_id%>">
<input type="checkbox" name="box_id<%=this_email_selection_id%>" 
value="<%=this_box_id%>">

عندما ترجع أسب القيم لهذا، فإنه سيعود قيم متعددة ل check_box_indicator . في ما يلي نموذج مقتطف سلسلة طلب البحث:

...&check_box_indicator=78&box_id78=78&check_box_indicator=98&check_box...

في الصفحة التالية، سيقوم أسب بقراءة بيانات النموذج. وسوف تجد كل check_box_indicator وقيمته. يمكن استخدام هذه القيمة للتحقق من قيمة مربع الاختيار المقترن. إذا عاد مربع الاختيار هذا، فقد تم فحصه، إذا لم يكن يعلم أنك لم يتم فحصه. في العينة أعلاه، تم فحص مربع الاختيار 78 وهكذا تم تمرير قيمة box_id78، بينما لم يكن مربع الاختيار 98 و box_id98 قد تم إرساله. وهنا رمز لاستخدام هذا.

For Each this_box_id In Request.Form("check_box_indicator") 'check EVERY box'

   box_state = Request.Form("box_id"&this_box_id) 'collect passed values only'

   if box_state  > 0 then
       store_value = "y"
   else
       store_value = "n"
   end if

   ' you now have the this_box_id number identifying this item in the DB, '
   ' the value of the check box, if it was passed '
   ' and a definite y or n value '

Next

مع كيريسترينغ سبيل المثال، سوف تحصل 78 ذ، 98 ن