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>

In reply to Re: HTML::Template Data::FormValidator Help ? by larsen
in thread HTML::Template Data::FormValidator Help ? by techcode

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.