0

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

<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”也能这样做。所以你能帮我解决这个问题吗?谢谢

4

1 回答 1

1

问题是你不应该有像输入一样的表单元素有重复的名字。有几种可能的解决方案,但这可能是最安全的。

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

<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
%>

注意。我使用了 Request.Form,但如果您使用表单方法 GET,那么您应该更改为 Request.QueryString。

于 2012-09-18T22:41:06.020 回答