1

ユーザーに表示される大きなレコードセットがあります。各レコードには、ユーザーがレコード内のさまざまなデータを編集できる編集ボタンがあります。特定のレコードには他のフィールドよりも多くのフィールドがあるため、編集フォームにはさまざまな名前とフィールド数があります。

たとえば、編集ボタンがクリックされた場合、1 つのレコードは次のようになります。

<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 更新を実行 ** 次へ

どんなガイダンスでも大歓迎です:)

4

2 に答える 2

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

これにより、送信された値に基づいて動的クエリが作成されます。

各値を個別に更新する必要がある場合、コードはよりシンプルになります。自分で変更できることを願っています。:)

于 2013-04-02T07:14:17.693 に答える
0

ぜひお役に立ちたいと思います。すでに知っていることを教えたくないので、もう少し情報が必要です。フォームに入力するコードが既にあるかどうか教えていただけますか...たとえば...このフォームは新しいデータや古いデータを編集するためのものですか、それとも新しいレコードのみを編集するためのものですか?

また、フォームを 1 つだけにして、サーバー側コード (ASP) で入力ボックスを動的に生成することを考えたことはありませんか? この場合(何かが欠けていない限り)複数のフォームを持つことは...エレガントではないため、これは私の推奨事項です。

より動的なアプローチを示す 2 つの ASP ページを含むこの zip ファイルをダウンロードできます: http://www.oceanmedia.net/files/hk_config.zip

于 2013-03-29T23:35:39.313 に答える