フォームの送信時に、フォームのフィールド名と値をキャプチャしたいので、ブラウザーに表示せずに渡してもらいたいです(Response.Writeを使用すると、ブラウザーに表示されます)。どうすればこれを行うことができますか?私はこのコードを使用しています:
For Each Item In Request.Form
fieldName = Item
fieldValue = Request.Form(Item)
Response.Write(""& fieldName &" = Request.Form("""& fieldName &""")")
Next
コードは基本的に正しいので、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
これは、すべてのフォームフィールドを表示するために使用する非常に小さなスニペットです。
<%
For x = 1 to Request.Form.Count
Response.Write x & ": " _
& Request.Form.Key(x) & "=" & Request.Form.Item(x) & "<BR>"
Next
%>