2012-01-31 16 views
7

khi gửi biểu mẫu, tôi muốn ghi lại tên trường và giá trị của biểu mẫu và tôi muốn chúng trôi qua mà không hiển thị trong trình duyệt (Response.Write làm cho chúng hiển thị trong trình duyệt). Làm thế nào tôi có thể làm điều này xin vui lòng? Tôi đang sử dụng mã này:Lặp qua một biểu mẫu để nhận tên trường và các vấn đề về giá trị đã nộp (ASP cổ điển)

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

    Response.Write(""& fieldName &" = Request.Form("""& fieldName &""")")  
    Next 
+0

http://stackoverflow.com/q/9093918/69820 –

Trả lời

17

Mã của bạn là cơ bản đúng, vì vậy chỉ cần loại bỏ các Response.Write và làm điều gì đó khác với fieldNamefieldValue biến bạn đang Populating. Sau khi bạn đã hoàn tất thao tác với dữ liệu (hoặc chèn nó vào cơ sở dữ liệu hoặc gửi e-mail), bạn có thể chuyển hướng người dùng đến trang thành công/cảm ơn bạn.

Để kiểm tra rằng bạn đang nhận được đầu vào chính xác, bạn có thể thay đổi bạn Response.Write để

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


Cập nhật

Đây là cách bạn có thể sử dụng một đối tượng từ điển đặt các tên trường và giá trị trường của bạn cùng nhau:

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 
+0

Hi nhờ sự giúp đỡ của bạn. về cơ bản tôi có một biểu mẫu và nó gửi đến một kịch bản. Kịch bản này có dạng FieldNames yêu cầu mã hóa cứng trong ví dụ kịch bản: PID = (Request.Form ("PID") .Tôi đã tạo vòng lặp trong tập lệnh này để làm việc động và lấy fieldNames từ biểu mẫu, và tôi muốn chúng được viết là [fieldName] = Request.Form ("[fieldName]") TRONG SCRIPT. Làm thế nào tôi có thể làm điều đó? –

+1

Tôi hiểu, nếu tôi hiểu chính xác, bạn muốn _create_ biến dựa trên tên trường với các giá trị Điều này là không thể và tốt nhất bạn có thể làm là tạo ra một mảng hoặc đối tượng từ điển với các cặp tên/giá trị đó – stealthyninja

+0

Vui lòng làm ơn và làm thế nào tôi có thể áp dụng điều này cho mảng? –

1

Đây là một đoạn rất nhỏ tôi sử dụng để hiển thị tất cả các lĩnh vực hình thức ĐƯỢC ĐƯA

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