HTML::FillInForm - Populates HTML Forms with CGI data. This module automatically inserts data from a previous HTML form into the HTML input, textarea and select tags. It is a subclass of the HTML::Parser manpage and uses it to parse the HTML and insert the values into the form tags. One useful application is after a user submits an HTML form without filling out a required field. HTML::FillInForm can be used to redisplay the HTML form with all the form elements containing the submitted info. This examples fills data into a HTML form stored in `$htmlForm' from CGI parameters that are stored in `$q'. For example, it will set the value of any "name" textfield to "John Smith". my $q = new CGI; $q->param("name","John Smith"); my $fif = new HTML::FillInForm; my $output = $fif->fill(scalarref => \$html, fobject => $q); Call `new()' to create a new FillInForm object: $fif = new HTML::FillInForm; To fill in a HTML form contained in a scalar `$html': $output = $fif->fill(scalarref => \$html, fobject => $q); Returns filled in HTML form contained in `$html' with data from `$q'. `$q' is required to have a `param()' method that works like CGI's `param()'. $output = $fif->fill(scalarref => \$html, fobject => [$q1, $q2]); Note that you can pass multiple objects as an array reference. $output = $fif->fill(scalarref => \$html, fdat => \%fdat); Returns filled in HTML form contained in `$html' with data from `%fdat'. To pass multiple values using `%fdat' use an array reference. Alternately you can use $output = $fif->fill(arrayref => \@array_of_lines, fobject => $q); and $output = $fif->fill(file => 'form.tmpl', fobject => $q); Suppose you have multiple forms in a html and among them there is only one form you want to fill in, specify target. $output = $fif->fill(scalarref => \$html, fobject => $q, target => 'form1'); This will fill in only the form inside <FORM name="form1"> ... </FORM>

Apache::PageKit
To use HTML::FillInForm in the Apache::PageKit manpage is easy. It is automatically called for any page that includes a <form> tag. It can be turned on or off by using the `fill_in_form' configuration option.

Apache::ASP v2.09 and above
HTML::FillInForm is now integrated with Apache::ASP. To activate, use PerlSetVar FormFill 1 $Response->{FormFill} = 1 This documentation describes HTML::FillInForm module version 0.25. Note that you might want to think about caching issues if you have password fields on your page. There is a discussion of this issue at http://www.perlmonks.org/index.pl?node_id=70482 In summary, some browsers will cache the output of CGI scripts, and you can control this by setting the Expires header. For example, use `-expires' in the CGI.pm manpage or set `browser_cache' to no in Config.xml file of the Apache::PageKit manpage. Please submit any bug reports to tjmather@tjmather.com. Requires Perl 5.005 and the HTML::Parser manpage version 3.08. I wrote this module because I wanted to be able to insert CGI data into HTML forms, but without combining the HTML and Perl code. CGI.pm and Embperl allow you so insert CGI data into forms, but require that you mix HTML with Perl. (c) 2002 Thomas J. Mather, tjmather@tjmather.com All rights reserved. This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself. the HTML::Parser manpage, the Data::FormValidator manpage, the HTML::Template manpage, the Apache::PageKit manpage Fixes, Bug Reports, Docs have been generously provided by: Tatsuhiko Miyagawa Patrick Michael Kane Ade Olonoh Tom Lancaster Martin H Sluka Mark Stosberg Trevor Schellhorn Jim Miner Boris Zentner Paul Lindner Maurice Aubrey Andrew Creer Joseph Yanni Philip Mak Jost Krieger Thanks!