不确定是否可能:
我有一个复选框列表如下:
<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进行比较并使用“已选中”检查该选项来尝试这样做
任何帮助将不胜感激。
答案 0 :(得分:0)
首先,您需要使用所选项(您的逗号分隔的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没有内置函数可以做到这一点。