//  home   //  advanced search   //  news   //  categories   //  sql build chart   //  downloads   //  statistics
 ASP FAQ 
Home
ASP FAQ Tutorials

   8000XXXX Errors
   ASP.NET 2.0
   Classic ASP 1.0
      COM / ActiveX Components
      Forms
      General Topics
      Date/Time Routines
      Email Scripts & Info
      Files/Directories & FSO
   Databases
   General Concepts
   Search Engine Optimization (SEO)

Contact Us
Site Map

Search

Web
aspfaq.com
tutorials.aspfaq.com
classicasp.aspfaq.com

ASP FAQ Tutorials :: Classic ASP 1.0 :: Forms :: How do I iterate through a form collection?


How do I iterate through a form collection?

It's kind of a pain to list all of the elements from a submitted form by referring to each one individually by name, e.g.: 
 
<% 
    response.write("a = " & request.form("a") & "<br>") 
    response.write("b = " & request.form("b") & "<br>") 
    response.write("c = " & request.form("c") & "<br>") 
    ...... 
    response.write("n = " & request.form("n") & "<br>") 
%>
 
There's an easy way to manipulate this, particularly when you're troubleshooting and just want to write out all the variables to the screen (or to a comment in the page). The following code will iterate (haphazardly, mind you) through each form element: 
 
<% 
    for each x in Request.Form 
        Response.Write("<br>" & x & " = " & Request.Form(x)) 
    next 
%>
 
And in JScript: 
 
<% 
    for(f = new Enumerator(Request.Form()); !f.atEnd(); f.moveNext()) 
    { 
        var x = f.item(); 
        Response.Write("<br>" + x + " = " + Request.Form(x)); 
    } 
%>
 
What I mean by haphazardly is that, while this is a very easy way to get all of the elements in three lines, they will not be in the order you expect... they'll be all over the place, and I have yet to see a valid explanation of how the order is derived. 
 
So another way to do this iteration actually preserves the order of the original form, by cycling through the form items numerically (there is a count property of the form object). Here it is in VBScript: 
 
<% 
    for x = 1 to Request.Form.count() 
        Response.Write(Request.Form.key(x) & " = ") 
        Response.Write(Request.Form.item(x) & "<br>") 
    next 
%>
 
And in JScript: 
 
<% 
    for (x = 1; x <= Request.Form.count(); x++) 
    { 
        Response.Write(Request.Form.key(x) + " = "); 
        Response.Write(Request.Form.item(x) + "<br>"); 
    } 
%>
 
[This technique also works for the QueryString and ServerVariables collections - in the ServerVariables collection, this doesn't change anything, since they're already ordered by iteration.] 
 
Personally, I would have chosen "name" and "value" over "key" and "item." Of course, I don't have as much influence over Microsoft as some of my co-workers seem to think. :-)

Related Articles

How can I mimic a client-side POST from ASP?
How do I cause/prevent ENTER being used to submit a form?
How do I change the target frame or window of a response.redirect?
How do I disable certain FORM elements?
How do I disable IE's Autocomplete feature?
How do I make form fields read-only?
How do I make one dropdown depend on another?
How do I pass x-y coordinates to ASP, after the user clicks an image?
How do I perform spell checking from a web page?
How do I retrieve the name of the form that was submitted?
How do I retrieve the text and the value from a <SELECT> element?
How do I submit forms to a new window, with window.open() features?
How do I upload files from the client to the server?
How do I validate a credit card number in ASP?
How do I validate forms using server side script?
What is the limit on Form / POST parameters?
What is the limit on QueryString / GET / URL parameters?
What is the size limit of a posted FORM field?
When I have multiple submit buttons, how do I tell which was clicked?
Which should I use: Request("item") or Request.Form("item")?
Why can't I access Request.Form() when uploading?
Why can't I pre-populate INPUT TYPE=FILE element?
Why do I get 'HTTP 405 - Resource Not Allowed' errors?
Why does my form variable become 'value, value' instead of 'value'?
Why does my input type=text value get truncated?
Why won't my <TEXTAREA> display the data I passed to it from ASP?

 

 


Created: 7/9/2000 | Last Updated: 10/28/2001 | broken links | helpful | not helpful | statistics
© Copyright 2006, UBR, Inc. All Rights Reserved. (278)

 

Copyright 1999-2006, All rights reserved.
Finding content
Finding content.  An error has occured...