web-dev-qa-db-ja.com

フォームをループしてフィールド名とファイル値の問題を取得する(クラシックASP)

フォームの送信時に、フォームのフィールド名と値をキャプチャしたいので、ブラウザーに表示せずに渡してもらいたいです(Response.Writeを使用すると、ブラウザーに表示されます)。どうすればこれを行うことができますか?私はこのコードを使用しています:

    For Each Item In Request.Form
    fieldName = Item
    fieldValue = Request.Form(Item)

    Response.Write(""& fieldName &" = Request.Form("""& fieldName &""")")       
    Next 
11
Rene Zammit

コードは基本的に正しいので、Response.Writeを削除し、入力しているfieldName変数とfieldValue変数を使用して別の操作を行います。データの操作(データベースへの挿入または電子メールの送信)が完了したら、ユーザーを成功/ありがとうページにリダイレクトできます。

正しい入力を受け取っていることをテストするには、Response.Writeを次のように変更します。

Response.Write fieldName & " = " & fieldValue & "<br>"


更新

ディクショナリオブジェクトを使用してフィールド名とフィールド値を組み合わせる方法は次のとおりです。

Dim Item, fieldName, fieldValue
Dim a, b, c, d

Set d = Server.CreateObject("Scripting.Dictionary")

For Each Item In Request.Form
    fieldName = Item
    fieldValue = Request.Form(Item)

    d.Add fieldName, fieldValue
Next

' Rest of the code is for going through the Dictionary
a = d.Keys  ' Field names  '
b = d.Items ' Field values '

For c = 0 To d.Count - 1
    Response.Write a(c) & " = " & b(c)
    Response.Write "<br>"
Next
20
stealthyninja

これは、すべてのフォームフィールドを表示するために使用する非常に小さなスニペットです。

<% 
For x = 1 to Request.Form.Count 
  Response.Write x & ": " _ 
    & Request.Form.Key(x) & "=" & Request.Form.Item(x) & "<BR>" 
Next 
%> 
1
Ravi Ram