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



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

例如,如果单击编辑按钮,一条记录将产生以下内容:

<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

任何指导将是最感激的:)

只需遍历所有表单集合并查找以所需名称开头的键:

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

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

如果每个值需要单独更新,代码变得更简单,希望你可以自己修改。:)

我很乐意帮忙。需要更多的信息因为我不想告诉你你已经知道的东西。你能告诉我你是否已经有了填写表格的代码吗?就像在……此表单是用于编辑新数据和/或旧数据还是仅用于编辑新记录?

另外,你有没有想过有一个表单,但你的服务器端代码(ASP)动态生成输入框?这是我的建议,因为在这种情况下有多个形式(除非我错过了什么)是……不雅的。

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

最新更新