经典ASP提交多值复选框选择,然后与其他表项一起显示选择



我在网上到处找都找不到这个谜题的答案。

我仍在使用VBSCRIPT(经典ASP),SQL中有两个表(Jobs和Tasks)

作业表
ID
任务ID

任务表
ID
任务名称

我基本上有一个表单,可以在其中创建一个新作业,用户可以使用复选框从任务表中选择一个或多个任务。假设用户检查了任务#1和任务#3。然后,此表单提交所选任务,然后将其插入Jobs表中的TaskID字段,该字段的值类似于"1,3"

然后,我使用这段代码来解析值(我可以补充一下,这很好):

values = rsQuery("TaskID")
selections = Split(values, ",")
For i = 0 To UBound(selections)
<option selected value='Response.Write rsQuery.Fields("TaskID")'>Response.Write rsTasks.Fields("TaskName"))
Next

这给了我所选的项目,但我真正想要的是将此列表与任务表中的其他任务(未选中)混合在一起,而不重复它们。使用数组可能有帮助吗?如果是这样的话,我完全不知道如何在这种情况下使用它。

有什么想法吗?提前谢谢!

获取记录集中的任务。循环浏览记录集以显示任务并检查作业中的ID。任务ID。如果该值存在,则将其显示为选中。

例如

sTaskID = rsQuery("TaskID")  ' this will have value from jobs table, say 1,3
set rsTasks = server.createobject("adodb.recordset")
ssql = "select * from tasks"
rsTasks.open ssql, <your connection>,....
do while not rsTasks.EOF
    if instr("," & sTaskID & ",", "," & rsTasks("ID") & ",") > 0 then
    ' Enclose the strings within commas, otherwise if the tasks selected has 10, then task ID 1 will show up as checked as well because the string 1 will be found within 10
        bChecked = " checked"
    end if
    %>
    <input type="checkbox" value="<%=rsTasks("ID")%>" <%=bChecked%>><%=rsTasks("TaskName")%>
    <%
    rsTasks.moveNext
loop

请注意,逗号分隔的值可以采用1,3或1,3的形式,即逗号后的空格。您需要相应地修改代码来处理此问题。

最新更新