首先,您需要使用所選項目(逗號分隔的ID字符串)來獲取字段值。類似這樣的:
Set rs = conn.execute("SELECT item_selected FROM tblTable WHERE iID = intSomeID") 'remember to handle SQL Injection
If Not rs.EOF Then
strItemSelected = rs("item_selected") & ","
End If
rs.Close() : Set rs = Nothing
我不知道你的複選框來自哪裏。但是,假設他們來自數據庫。然後,它會是這個樣子:
Set rs = conn.execute("SELECT ID, ItemName FROM tblCheckboxes")
If Not rs.EOF Then
While Not rs.EOF
strChecked = ""
If InStr(strItemSelected, CStr(rs("ID")) & ",") > 0 Then
strChecked = " checked=""checked"""
End If
Response.Write("<input type=""checkbox"" name=""item"" value=""" & rs("ID") & """" & strChecked & " /> " & rs("ItemName") & "<br/>")
rs.Movenext
Wend
End If
rs.Close() : Set rs = Nothing
我沒有測試代碼,但應該工作,但你可能需要調整它一點適合您的方案。
你也可以拆分所選擇的項目上逗號像這樣:
arrItemSelected = Split(rs("item_selected"),",")
然後在該循環並寫出複選框,你可以檢查,如果該值在數組中,而不是做InStr函數的代碼()。但是你需要爲它寫一個函數,或者從Internet上獲取一些函數,因爲VBScript沒有內置函數,就我所知。
您只顯示一個複選框,但我懷疑它們都具有相同的名稱。這就是他們最終成爲一個陣列的方式。 –
是的,這是我的第一個傾向,但不確定。它遍歷所有ID,用戶可以選擇他們想要的項目。所有這個'name ='item'' – rem
如果我理解正確,你想知道如何將複選框標記爲基於該字段中的內容進行檢查。您可以將字段值轉換爲數組,並在創建每個複選框時,在數組中搜索特定複選框的值。如果找到,請將checked ='checked'添加到標籤。 –