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