不确定这是否可能:
我有一个复选框列表,如下所示:
<input type='checkbox' name="item" value="<%=rs("ID")%>" /> <%= rs("Item Name") %>
然后,我采用选定的值:
item_id = request.form("item")
它写入一个称为 item_selected 的数据库字段,即 varchar(50(,并在数据库中记录如下:
票价:31、32、45 元
也不确定它是如何工作的,因为它不是一个数组(据我所知(,而且我没有明确用逗号分隔值。
但我想做的是检索值并遍历每个 ID 并使该选项"选中"(仅检查他们选择的项目(,这是用于更新订单页面。
我试图通过获取所有项目 ID 并尝试与他们选择的 ID 进行比较并使用"选中"来检查该选项
任何帮助将不胜感激。
首先,您需要获取包含所选项目的字段值(逗号分隔的 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((。但是你需要为此编写一个函数,或者从互联网上获取一些函数来做到这一点,因为据我所知,VBScript 没有内置函数可以做到这一点。