我有一张表格,用于跟踪每位员工的工作进度。由于一名员工一天可以完成许多任务。因此,为了节省工作时间,我为任务创建了复选框,以便我可以一次选择并保存为多个记录。我的代码如下
<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")%>"> <%=rsPdtn_sizeColor.fields.item("pdtn_st_size")%> <%=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”做同样的事情。那么请你帮帮我吧。谢谢
答案 0 :(得分:1)
问题是您不应该使用具有重复名称的输入等表单元素。有几种可能的解决方案,但这可能是最安全的。
在您的代码中,将数据库ID添加到复选框和qty文本框的名称,如下所示:
<div style="width:120px; float:left"><input type="checkbox" name="pdtn_szcl_id_<%=rsPdtn_sizeColor.fields.item("pdtn_szcl_id")%>"> <%=rsPdtn_sizeColor.fields.item("pdtn_st_size")%> <%=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。