http://qs321.pair.com?node_id=162347


in reply to Form Entry to HTML and Plain text

When you use the CGI.pm you can make the parameters 'sticky' specifically you would use CGI qw(:form) (I usually use CGI qw(:standard) here is an example of how you would use this:
#!/usr/bin/perl -w use strict; use CGI qw(:standard); #you can even alter the values of hidden fields based on #the values of other fields if (param('foo') eq 'change') { param('bar','a new value'); } my $txt_textfield=textfield(-name=>'foo', -size=>40); my $txt_hidden=hidden(-name=>'bar', -default=>'I do not want users to see this'); my $cmd_reset=defaults('Reset form'); my $cmd_submit=submit(-name=>'send'); print header( "text/html" ); print start_html( -title => "Sticky values in a form"); print start_form(); #defaults to method get, and action current form print <<FORM; $txt_textfield <br><br> $txt_hidden <br><br> $cmd_submit &nbsp; &nbsp; $cmd_reset FORM print end_form(); print end_html;
copy the code to your cgi-bin and call it in a browser. When you view source note the value of the hidden field. Type 'change' (without quotes) into the text field, submit it and view source again. Also note that the value of the textfield stayed the same (you can change this behavior by using param('foo','') (those are two single quotes) after testing its value. For more information about CGI::Form you can go here: CPAN's CGI::Form page

John