所以我认为我现在处于某种隧道视觉中。
我必须维护一个非常基本的应用程序(HTML + ASP)。在此应用程序中,有一个带有一些值的小表:
<table>
<tr>
<td>Customer-ID</td>
</tr>
<tr>
<td>Waregroup</td>
</tr>
<tr>
<td>Some other ID</td>
</tr>
<tr>
<td>[edit]</td>
</tr>
<tr>
<td>[delete]</td>
</tr>
<tr>
<td>[checkbox for deletion]</td>
</tr>
</table>
看起来是这样,以使其更加可视化(不包含数据的行,为此不需要它们):
现在,delete
函数不仅仅采用客户ID(KD Nr。),还需要其他几个参数,这些参数在链接中提供。例如,这里:
someSite.com?sid=123456&gkid=133&kdid=9043168&wws=9&del=1
某些值是从QueryString中获取的,其他值是从SQL查询的ResultSet中获取的。
现在,我不得不扩展此应用程序,并在批量删除中添加一个复选框。这根本不是问题,但是当我基本上只可以在每个复选框中使用1个值时,我有点卡住了如何获取删除所需的值。我考虑过使用隐藏的输入,但是后来我不知道如何确定哪些行应该删除,哪些行不应该删除:
这是我添加的内容:
<td>
<input type="checkbox" name="deletebox[]" value="0">
<input type="hidden" name="sid" value="<%=Request.QueryString("sid")%>">
<input type="hidden" name="gkid" value="<%=Request.QueryString("gkid")%>">
<input type="hidden" name="kdid" value="<%=rs("ka_kdnr")%>">
<input type="hidden" name="wws" value="<%=rs("ka_sysid")%>">
</td>
我的想法是遍历每个选中的复选框,从隐藏字段中获取值,然后循环运行我的删除脚本。
任何领导如何做到这一点?我可以简单地遍历所有选中的复选框和request
来获取隐藏字段的当前值吗?
我基本上只需要 gkid 和 gkkid 即可使存储过程正常工作。
答案 0 :(得分:1)
如果您提交的表单包含相同表单变量的多个实例,则该变量在Request对象中的值将显示为逗号分隔的数组。换句话说,如果您的表单包含以下内容:
<input type="checkbox" name="gkid" value="25">
<input type="checkbox" name="gkid" value="50">
<input type="checkbox" name="gkid" value="75">
然后Request("gkid")
将显示所有值,分别显示为“ 25,50,75”。然后,您可以按如下所示拆分数组。
For i = 1 to Request("gkid").Count
Response.write Request("gkid")(i) & "<br>" & vbcrlf
Next
我将假定您可以从那里拿走它,并改写上面的内容以使用Request.Form("gkid")(i)
,并使用调用存储过程的代码在循环内应用逻辑。
您的问题提到了一个名为“ gkkid”的变量。我看不到那是哪里来的。如果可以的话,我也许可以改善这个答案。