HTML::FillInForm::Lite - Fills in HTML forms with data
The document describes HTML::FillInForm version 0.07
use HTML::FillInForm::Lite; use CGI; my $q = CGI->new(); my $h = HTML::FillInForm::Lite->new(); $output = $h->fill(\$html, $q); $output = $h->fill(\@html, \%data); $output = $h->fill(\*HTML, \&my_param); $output = $h->fill('t.html', [$q, \%default]); $output = $h->fill(\$html, $q, fill_password => 0, # it is default ignore_fields => ['foo', 'bar'], target => $form_id, ); # Moreover, it accepts any object as data # (these classes come form Class::DBI's SYNOPSIS) my $artist = Music::Artist->insert({ id => 1, name => 'U2' }); $output = $h->fill(\$html, $artist); my $cd = Music::CD->retrieve(1); $output = $h->fill(\$html, $cd);
This module fills in HTML forms with Perl data, which re-implements HTML::FillInForm using regexp-based parser, not using HTML::Parser.
HTML::FillInForm
HTML::Parser
The difference in the parsers makes HTML::FillInForm::Lite about 2 times faster than HTML::FillInForm.
HTML::FillInForm::Lite
Creates HTML::FillInForm::Lite processer with options.
There are several options. All the options are disabled when undef is suplied.
undef
Acceptable options are as follows:
To enable passwords to be filled in, set the option true.
Note that the effect of the option is the same as that of HTML::FillInForm, but by default HTML::FillInForm::Lite ignores password fields.
To ignore some fields from filling.
To fill in just the form identified by form_id.
If true is provided (or by default), values filled in text fields will be html-escaped, e.g. <tag> to be <tag>.
<tag>
<tag>
If the values are already html-escaped, set the option false.
If a subroutine reference is provided, it will be used to escape the values.
Note that it is not implemented in HTML::FillInForm.
Fills in source with form_data.
The options are the same as new()'s.
new()
You can use this method as both class or instance method, but you make multiple calls to fill() with the same options, it is a little faster to call new() before fill().
fill()
To clear all the fields, provide form_data with a subroutine returning an empty string, like:
HTML::FillInForm::Lite->fill($source, sub{ '' });
form_data as a subroutine is called in list context. That is, to leave some fields untouched, it must return (), not undef.
()
This module implements only the new syntax of HTML::FillInForm version 2.
This module is designed to process XHTML 1.x.
And it also supporting a good part of HTML 4.x , but there are some limitations. First, it doesn't understand html-attributes that the name is omitted.
For example:
<INPUT TYPE=checkbox NAME=foo CHECKED> -- NG. <INPUT TYPE=checkbox NAME=foo CHECKED=CHECKED> - OK, but obsolete. <input type="checkbox" name="foo" checked="checked" /> - OK, valid XHTML
Then, it always treats the values of attributes case-sensitively. In the example above, the value of type must be lower-case.
type
Moreover, it doesn't recognize ommited closing tags, like:
<select name="foo"> <option>bar <option>baz </select>
When you can't get what you want, try to give your source to a HTML lint.
This module processes all the processible, not knowing comments nor something that shouldn't be processed.
It may cause problems. Suppose there is a code like:
<script> document.write("<input name='foo' />") </script>
HTML::FillInForm will process the code to be broken:
<script> document.write("<input name='foo' value="bar" />") </script>
To avoid such problems, you can use the ignore_fields option.
ignore_fields
No bugs have been reported.
Please report any bug or feature request to <gfuji(at)cpan.org>, or through http://rt.cpan.org.
HTML::FillInForm.
HTML::FillInForm::Lite::JA - the document in Japanese.
Goro Fuji (藤 吾郎) <gfuji(at)cpan.org>
Copyright (c) 2008 Goro Fuji, Some rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install HTML::FillInForm::Lite, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTML::FillInForm::Lite
CPAN shell
perl -MCPAN -e shell install HTML::FillInForm::Lite
For more information on module installation, please visit the detailed CPAN module installation guide.