Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Answer: How can I allow the user to enter multiple rows of data?

by Russ (Deacon)
on Aug 06, 2000 at 23:44 UTC ( #26445=categorized answer: print w/replies, xml ) Need Help??

Q&A > CGI programming > How can I allow the user to enter multiple rows of data? - Answer contributed by Russ

Yes, it would.

In the "output" side of your web script:

# Give each row a unique value (1, 2, 3...) for (1..10){ # Name each field, adding the unique value in $_ (A1, B1, C1...) print qq{ <tr> <td><input type="text" name="A$_"></td> <td><input type="text" name="B$_"></td> <td><input type="text" name="C$_"></td> <td><input type="text" name="D$_"></td> </tr> }; }
In the "processing" side:
for (1..10){ my ($A, $B, $C, $D) = (CGI::param("A$_"), CGI::param("B$_"), CGI::param("C$_"), CGI::pa +ram("D$_")); # This line confirms that the user entered something in at least one + field next unless grep {defined $_} ($A, $B, $C, $D); # Now that we know we got user input, do an insert into the database }
This is not the most efficient way to do things, but I'm trying to demonstrate the technique, not give cut-and-paste-ready code.

Good luck.


Replies are listed 'Best First'.
RE: Answer: How can I allow the user to enter multiple rows of data?
by eak (Monk) on Aug 07, 2000 at 20:04 UTC
    I thought I would offer a little more cleaned up version. Cuz I have had to do this before.
    for (1..10){ # using one var and letting CGI handle it print qq{ <tr> <td><input type="text" name="stuff"></td> </tr> }; } # In your script that receives the POST use CGI; my $cgi = new CGI; my @stuff = $cgi->param('stuff'); foreach my $thing (@stuff){ "INSERT INTO STUFF_HOLDER VALUES('$thing')"; }
    BTW. The only other way I know how to INSERT more than one row into a table with a single SQL statement is by complimenting the INSERT with a SELECT. For example: INSERT INTO new_table SELECT * FROM old_table
Log In?

What's my password?
Create A New User
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2020-09-22 22:11 GMT
Find Nodes?
    Voting Booth?
    If at first I dont succeed, I

    Results (130 votes). Check out past polls.