经典ASP - 提交未知数字和字段名称?

时间:2013-03-29 20:51:50

标签: asp-classic

我向用户显示了一个大型记录集。每个记录都有一个编辑按钮,允许用户编辑记录中的各种数据。某些记录比其他记录具有更多字段,因此编辑表单具有各种不同的名称和字段数。

例如,如果单击编辑按钮,则会生成以下一条记录:

<form id="frm1" name="frm1" method="post" action="changeJob.asp?jobNo=1101&jQueryID=1" target="_blank">
<input type='text' name='Qty13' value='8' size="3" maxlength="3"/>
<input type="submit" name="btnFrm1" id="button" value="Submit" />
</form>

然而,另一条记录会产生这个:

<form id="frm2" name="frm2" method="post" action="changeJob.asp?jobNo=1102&jQueryID=2" target="_blank">
<input type='text' name='Qty15' value='8' size="3" maxlength="3"/>
<input type='text' name='Qty16' value='8' size="3" maxlength="3"/>
<input type='text' name='Qty17' value='8' size="3" maxlength="3"/>
<input type='text' name='Qty18' value='8' size="3" maxlength="3"/>
<input type="submit" name="btnFrm2" id="button" value="Submit" />
</form>

如上所述,每个输入字段被分配其唯一名称,例如“Qty14”,并且其形式具有其自己的名称,例如“frm2”。这些必须是唯一的,因为我有一些jQuery加号和减号按钮,允许用户增加数量。

在changeJob.asp中,如何确定哪些字段在具有唯一名称和编号的位置提交?我可以很容易地使用隐藏字段获取表单名称。

我正在努力实现以下目标:

  

对于frm1中的每个字段   **做SQL Update ** Next

任何指导都会非常感激:)

2 个答案:

答案 0 :(得分:2)

只需迭代所有表单集合,然后查找以所需名称开头的键:

Dim strSQL, curValue, blnFirst
blnFirst = True
strSQL = "Update MyTable Set "
For Each key In Request.Form
    If Left(key, 3)="Qty" Then
        'prevent nasty hacking
        If IsNumeric(Replace(key, "Qty", "")) Then
            curValue = Request.Form(key)
            If IsNumeric(curValue) Then
                If Not(blnFirst) Then
                    strSQL = strSQL & ", "
                End If
                strSQL = strSQL & key & "=" & curValue
                blnFirst = False
            End If
        End If
    End If
Next
If blnFirst Then
    'no values, show alert of some sort...
Else  
    strSQL = strSQL & " Where [filter here]"
    '...
End If

这将根据提交的值构建动态查询。

如果每个值都需要单独更新,则代码变得更简单,希望您可以自行更改。 :)

答案 1 :(得分:0)

我很乐意帮忙。需要更多信息,因为我不想告诉你你已经知道的东西。你能告诉我你是否已经填写了表格代码......如...这个表格是用来编辑新的和/或旧的数据还是只有新的记录?

另外,您是否考虑过使用一个表单然后让服务器端代码(ASP)动态生成输入框?这是我的建议,因为在这种情况下有多个表格(除非我遗漏了什么)是......不优雅。

您可以下载此zip文件,其中包含两个asp页面,演示了更具动态性的方法:http://www.oceanmedia.net/files/hk_config.zip