Script: examples/form_htc.pl
The Script:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use blib;
use CGI::FormBuilder;
use Fcntl qw(:seek);
my ($template, $perlcode);
{
local $/;
$template = <DATA>;
seek DATA, 0, SEEK_SET;
$perlcode = <DATA>;
}
my $form = CGI::FormBuilder->new(
action => 'TEST',
title => 'TEST',
fields => [qw/name color email/],
submit => [qw/Update Delete/],
reset => 0,
template => {
scalarref => \$template,
type => 'HTC',
variable => 'form',
tagstyle => [qw(-classic -comment -asp +tt)],
data => {
script => $perlcode,
template => $template,
script => $0,
perlcode => $perlcode,
},
},
values => { color => [qw/yellow green orange/] },
validate => { color => [qw(red blue yellow pink)] },
);
my $mod = {
color => {
options => [[qw/red Red/],[qw/green Green/],[qw/ blue Blue/]],
type => 'select',
},
size => { value => 42 }
};
while ( my ( $f, $o ) = each %{$mod} ) {
$o->{name} = $f;
$form->field(%$o);
}
my $out = $form->render;
print "$out\n";
__DATA__
<html><head><title>CGI::FormBuilder::Template::HTC example</title></head>
<body>
[%= form.jshead%]
[%= form.start%]
NAME:[%= form.field.name.field%]<br>
COLOR:[%= form.field.color.field %]<br>
SIZE:[%= form.field.size.value%]<br>
[%= form.submit%]<br>
[%= form.end%]
<h2>Script: [%= .script %]</h2><p>
<hr>
<h2>The Script:</h2>
<pre>
[%= perlcode escape=html %]
</pre>
</body></html>