Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: HTML::Template Data::FormValidator Help ?

by larsen (Parson)
on Jul 16, 2004 at 22:34 UTC ( [id://375152]=note: print w/replies, xml ) Need Help??


in reply to HTML::Template Data::FormValidator Help ?

I usually work in this way:
# CGI::Application code... # The main runmode, where I show the page # sub foo { my $self = shift; my $s = $self->session(); my $tmpl = $self->load_tmpl('foo'); # ... load data in the template, as long # as the missing and invalid fields, that # come from the session (see foo_update()). foo_view( $tmpl, $data, $s->param('missing'), $s->param('invalid') +); return $tmpl->output(); } sub foo_update { my $self = shift; my $q = $self->query(); my $s = $self->session(); my %form = $q->Vars(); + my $results = Data::FormValidator->check( \%form, $profile ); + + if ($results->has_invalid() or $results->has_missing()) { + + $s->param( missing => [ $results->missing() ] , + invalid => [ $results->invalid() ] ); + + $self->redirect( { rm => 'foo' } ); + } + else { + + # Data are good, we proceed... + $self->redirect( { rm => 'bar' } ); + } + }
Then I setup a View module, that receives the template object, data and the invalid and missing fields, like this:
# This is called by foo() from the main application, just before # to display the page # sub foo_view { my $template = shift; my $date = shift; my $missing = shift; my $invalid = shift; $template->param( "missing_$_" => 1 ) for @$missing; $template->param( "invalid_$_" => 1 ) for @$invalid; # [...] return $template; }
Finally, in the template, I can write things like that:
<TMPL_IF invalid_some_field>Bad boy! This is an error message.</TMPL_I +F>

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://375152]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (4)
As of 2024-04-16 17:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found