如何保存复选框上选中的整个记录​​集

时间:2012-09-18 14:40:08

标签: javascript asp-classic

我有一张表格,用于跟踪每位员工的工作进度。由于一名员工一天可以完成许多任务。因此,为了节省工作时间,我为任务创建了复选框,以便我可以一次选择并保存为多个记录。我的代码如下

<td colspan="2">
        <%
          if rsPdtn_sizeColor.eof then 
             call displayNotFoundRecord
          Else
             Do Until  rsPdtn_sizeColor.Eof
        %>             
    <div style="width:120px; float:left"><input type="checkbox" name="pdtn_szcl_id" value="<%=rsPdtn_sizeColor.fields.item("pdtn_szcl_id")%>">&nbsp;<%=rsPdtn_sizeColor.fields.item("pdtn_st_size")%> &nbsp;&nbsp;<%=rsPdtn_sizeColor.fields.item("pdtn_st_color")%></div>
    <div style="width:50px; float:left"><input type="text" name="pdtn_qty" value="<%=rsPdtn_sizeColor.fields.item("pdtn_st_qty_est")%>" size="7"></div>
    </div>
    <div style="clear:both"></div>
        <%                                                                  
             rsPdtn_sizeColor.movenext
             Loop
           End if                   

        rsPdtn_sizeColor.movefirst                              
        %>

</td>
<td><input name="pdtn_note" value="<%=pdtn_note%>" size="39"></td>

但是,使用此代码,只有字段“pdtn_szcl_id”只能传递我检查的记录集。我希望“pdtn_qty”做同样的事情。那么请你帮帮我吧。谢谢

1 个答案:

答案 0 :(得分:1)

问题是您不应该使用具有重复名称的输入等表单元素。有几种可能的解决方案,但这可能是最安全的。

在您的代码中,将数据库ID添加到复选框和qty文本框的名称,如下所示:

<div style="width:120px; float:left"><input type="checkbox" name="pdtn_szcl_id_<%=rsPdtn_sizeColor.fields.item("pdtn_szcl_id")%>">&nbsp;<%=rsPdtn_sizeColor.fields.item("pdtn_st_size")%> &nbsp;&nbsp;<%=rsPdtn_sizeColor.fields.item("pdtn_st_color")%></div> 
<div style="width:50px; float:left"><input type="text" name="pdtn_qty_<%=rsPdtn_sizeColor.fields.item("pdtn_szcl_id")%>" value="<%=rsPdtn_sizeColor.fields.item("pdtn_st_qty_est")%>" size="7"></div> 

然后,当您想要检索值时,需要再次打开记录集并循环检查是否已选中复选框并获取值,如下所示:

<%
'Open your rsPdtn_sizeColor recordset again
Do Until rsPdtn_sizeColor.Eof
    If Request.Form("pdtn_szcl_id_" & rsPdtn_sizeColor.fields.item("pdtn_szcl_id")) = "on" Then
         'This checkbox was checked
         id = rsPdtn_sizeColor.fields.item("pdtn_szcl_id")
         qty = Request.Form("pdtn_qty_" & rsPdtn_sizeColor.fields.item("pdtn_szcl_id"))
         'This gives you the ID and Qty entered for each row
    End If
    rsPdtn_sizeColor.movenext
Loop
%>

NB。我使用了Request.Form但是如果你使用表单方法GET,那么你应该改为Request.QueryString。