2012-01-31 9 views
7

per l'invio di un modulo, vorrei acquisire i nomi dei campi e i valori dei moduli e li voglio passare senza nemmeno visualizzarli nel browser (Response.Write li rende visibili nel browser). Come posso fare questo per favore? Sto usando questo codice:Ciclo continuo attraverso un modulo per ottenere il nome di campi e il valore dei valori di file (ASP classico)

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 –

risposta

17

Il codice è essenzialmente corretto, quindi è sufficiente rimuovere la Response.Write e fare qualcosa di diverso con le fieldName e fieldValue variabili che stai popolano. Dopo aver finito di manipolare i dati (inserendoli in un database o inviando un'e-mail), puoi reindirizzare l'utente a una pagina di successo/ringraziamento.

Per verificare che si sta ricevendo l'ingresso corretto, è possibile modificare la Response.Write a

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


Aggiornamento

Ecco come è possibile utilizzare un oggetto Dictionary per mettere i nomi dei campi e i valori dei campi insieme:

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

Ciao, grazie per il vostro aiuto. fondamentalmente ho un modulo e si sottomette a una sceneggiatura. Questo script aveva le richieste FieldNames formamente codificate nell'esempio di script: PID = (Request.Form ("PID"). Ora ho creato il ciclo in questo script per funzionare in modo dinamico e ottenere i nomi campo dal modulo, e voglio che essere scritto come [fieldName] = Request.Form ("[fieldName]") NELLO SCRIPT. Come posso farlo per favore? –

+1

Vedo: se ho capito bene, vuoi _creare_ variabili basate sui nomi dei campi con i valori che non è stato possibile e il meglio che puoi fare è creare un array o un dizionario con le coppie nome/valore – stealthyninja

+0

Qual è l'easiet per favore e come posso applicarlo all'array? Grazie ancora –

1

Questo è un piccolo frammento che uso per mostrare tutti i campi del modulo INVIATI

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