Hi
> -----Original Message-----
> From: marys [mailto:[EMAIL PROTECTED]
> Sent: 11 November 2008 11:20
> To: [email protected]
> Subject: using cgi.pm to create and interpret textboxes
>
> Hello:
> Can anyone tell me how to use CGI.pm's 'textfield' function to set up
> a form with a lot of fill-in fields and then parse them? I tried to
> read three values from input boxes but the output seems to be the name
> of the textbox and not its value. Here are two scripts:
>
> (1) a.cgi:
>
> #!/usr/bin/perl -wT
> use CGI::Carp qw(fatalsToBrowser);
> use CGI ':standard';
> use strict;
> use diagnostics;
> my $z = new CGI;
> print $z->header;
> print $z->start_html;
>
>
> print $z->h2("Please indicate the length of each leg of the
> triangle:"),"\n";
>
> print $z->startform(-method=>"POST",-action=>"action.cgi");
>
> my @leglength;
> my @leg;
>
> foreach (0..2){
> print $z->h2($leg[$_]," ",textfield("leglength[$_]"));
> }
>
> print $z->submit('Submit');
>
> print $z->end_html;
>
>
_______________________________________________________________________
> ______________________
>
> (2) action.cgi:
>
> #!/usr/bin/perl -wT
> use CGI::Carp qw(fatalsToBrowser);
Typo here.
use CGI ':standard';
> use strict;
> use diagnostics;
> my $q = new CGI;
> my @param=param();#these are the contents from textboxes on previous
> page
> print $q->header;
> print $q->start_html;
>
> my @leglenth;
>
> my @param=param();
> my $z;
> my $a=-1;
The issue is here.
> foreach(0..2){
> $a+=1;
> $leglenth[$a] = $param[$a];
> }
Your puttng the names in the array not the values
you want param($param[$a]);
> my $numelements=scalar(@leglenth);
> print $q->h2("The number of elements in array [EMAIL PROTECTED] is
> $numelements\n");
>
> foreach (@leglenth){
> print $q->h2("\$leglenth[$_] is $_ \n");
> }
>
> print $q->h2("[EMAIL PROTECTED] is @leglenth \n");
>
> print $q->end_html;
>
>
_______________________________________________________________________
> ______________________
> I illustrated the problem with just three fill-in fields, but I will
> need many more. The output of the print statements in the file
> 'action.cgi' is that each element listed has the name of the element,
> e.g. "leg[0]" , not the value filled in. I can pass the values
> through if I individually label each input box in the input script,
> but it gets very sloppy and tedious to do it that way. Does anyone
> know if it can be done the way I tried?
> Thank you in advance.
> Mary
print "===========================\n";
foreach my $p (@param) {
next unless $p =~ /leglength/;
print $q->h4("$p = ".$q->param($p));
}
print $q->end_html;
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/