Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

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

by larsen (Parson)
on Jul 16, 2004 at 22:34 UTC ( #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>


Comment on Re: HTML::Template Data::FormValidator Help ?
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (10)
As of 2014-10-20 22:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (92 votes), past polls