2012-01-06 64 views
0

複選框我有一個複選框如何實現在傳統的ASP

<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

這應該指定一個真/假的變量OnlineOrdering:

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

得益於優秀的,從來沒有 – Beginner 2012-01-06 15:14:41

+0

這是一個經驗:)之前,傳統的ASP工作。我相信你已經完成了,但代碼會評估發佈的值OnlineOrdering是否不爲空 - 如果它不是[空白],則檢查它,如果它是空白的,那麼它是未選中的。 – akiller 2012-01-06 15:18:49

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個牛頓