2012-01-31 22 views
7

al enviar un formulario, me gustaría capturar los nombres de campo y valores de los formularios y quiero que se aprueben sin mostrarlos en el navegador (Response.Write los hace visibles en el navegador). ¿Cómo puedo hacer esto por favor? Estoy utilizando este código:Looping a través de un formulario para obtener nombres de campo y valores archivados (ASP clásico)

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 –

Respuesta

17

Su código es esencialmente correcta, por lo que sólo quitar el Response.Write y hacer otra cosa con los fieldName y fieldValue las variables que estés pueblan. Una vez que haya terminado con la manipulación de los datos (ya sea insertándolos en una base de datos o enviando un correo electrónico), puede redirigir al usuario a una página de éxito/agradecimiento.

Para probar que usted está recibiendo la entrada correcta, puede cambiar su Response.Write a

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


actualización

de cómo se puede utilizar un diccionario de objetos para poner aquí sus nombres de campo y valores de campo juntos:

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

Hola gracias por su ayuda. básicamente tengo un formulario y se somete a un script. Este script tenía el formulario FieldNames solicitudes codificadas en el ejemplo de script: PID = (Request.Form ("PID"). Ahora creé el bucle en este script para que funcione dinámicamente y obtenga fieldNames del formulario, y quiero que se escribirá como [fieldName] = Request.Form ("[fieldName]") EN EL SCRIPT. ¿Cómo puedo hacerlo, por favor? –

+1

Veo, si entiendo correctamente, quiere _crear_ variables basadas en los nombres de campo con los valores que se enviaron para ellos. Esto no es posible y lo mejor que puedes hacer es crear una matriz u objeto de diccionario con esos pares de nombre/valor. – stealthyninja

+0

¿Cuál es la tranquilidad por favor y cómo puedo aplicar esto a la matriz? Gracias de nuevo –

1

Este es un muy pequeño fragmento que utilizo para mostrar todos los campos del formulario ENVIADOS

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