NAME CGI::Application::Plugin::SuperForm - Create sticky HTML forms in CGI::Application run modes using HTML::SuperForm SYNOPSIS use CGI::Application::Plugin::SuperForm; sub form_runmode { my $c = shift; my $form_start = $c->superform->start_form( { method => "POST", action => $c->query()->url() . "/myapp/form_process", } ); my $text = $c->superform->text( name => 'text', default => 'Default Text' ); my $textarea = $c->superform->textarea( name => 'textarea', default => 'More Default Text' ); my $select = $c->superform->select( name => 'select', default => 2, values => [ 0, 1, 2, 3 ], labels => { 0 => 'Zero', 1 => 'One', 2 => 'Two', 3 => 'Three' } ); my $output = <<"END_HTML";
Text Field: $text
Text Area: $textarea
Select: $select
END_HTML return $output; } DESCRIPTION Create sticky forms with "HTML::SuperForm". METHODS sform alias to superform superform Returns a instance of "HTML::SuperForm" preconfigured with sticky and fallback options on. See HTML::SuperForm for more information and examples. EXAMPLE USING TT PLUGIN A simplistic but working app SuperForm, TT and AutoRunmode plugins. TT brings in 'c' var to templates automatically, SuperForm brings in 'sform'. Files: ./lib/MyApp.pm .MyApp/form.tmpl ./server.pl lib/MyApp.pm package MyApp; use base 'Titanium'; use CGI::Application::Plugin::TT; use CGI::Application::Plugin::SuperForm; use CGI::Application::Plugin::AutoRunmode; sub form: Runmode{ my $c = shift; $c->tt_process(); } sub process_form(): Runmode{ my $c = shift; # do something with user input. # redirect to success page, etc. return "You said: ". $c->query()->param('input1'); } 1; # End of MyApp MyApp/form.tmpl [% c.sform.start_form({method=>"POST"}) %]
Say what? [% c.sform.text({name=>"input1"}) %]
[% c.sform.hidden({name=>"rm", value=>"process_form"}) %]
[% c.sform.submit()%]
[% c.sform.end_form() %]
.server.pl use warnings; use strict; use CGI::Application::Server; use lib 'lib'; use MyApp; my $app = MyApp->new(PARAMS => {}); my $server = CGI::Application::Server->new(); $server->document_root('.'); $server->entry_points({ '/index.cgi' => $app, }); $server->run; SEE ALSO HTML::SuperForm, Titanium, CGI::Application. AUTHOR Gordon Van Amburg, "gordon@minipeg.net" LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as perl itself.