首先,您需要使用所选项目(逗号分隔的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'添加到标签。 –