如何在经典asp中实现一个复选框

时间:2012-01-06 14:51:56

标签: asp-classic

我有一个复选框

<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")

这不起作用?

2 个答案:

答案 0 :(得分:2)

这应该为变量OnlineOrdering:

分配一个true / false
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
    OnlineOrdering = (Request.Form("OnlineOrdering") <> "")
End If

答案 1 :(得分:1)

我发现这篇文章是因为我试图解决同样的问题。我有一个似乎运作良好的解决方案。

在HTML表单中,创建动态生成的复选框。下面使用的 this_box_id 的值可以是任何唯一的数字。就我而言,它是SQL数据库中该问题的主键(自动编号)。动态生成带有关联隐藏字段的复选框:

<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%>">

当asp返回此值时,它将返回 check_box_indicator 的多个值。这是一个示例查询字符串片段:

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

在下一页上,ASP将读取表单数据。它会找到每个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 y,98 n