in reply to Re: Checkbox parameter not being stored in CGI::Session
in thread Checkbox parameter not being stored in CGI::Session

err. newbie code. ok thank you for pointing these out. will go a long way in my development as a perl developer.
  • Comment on Re^2: Checkbox parameter not being stored in CGI::Session

Replies are listed 'Best First'.
Re^3: Checkbox parameter not being stored in CGI::Session
by Anonymous Monk on Oct 13, 2014 at 09:29 UTC

    err. newbie code. ok thank you for pointing these out. will go a long way in my development as a perl developer.

    We've all been there :)

    sub collect_data { my $self = shift; my( $page_data, $errors ) = valiDaaTTTee( $self->query, $validatio +nProfile ) if( $errors ){ return $self->tt_process('collect_data.tt', $errors ); } else { $self->validated_session( $page_data ); return $self->redirect( $self->url_for('display) ); } }

    on success you do a redirect get with a url_for('display') not 'mode2' ... matching names makes make things easier ...

    valiDaaTTTee can be some something you write using Data::FormValidator kinda like CGI::Application::Plugin::ValidateRM

    Want to inspect sessions? If viewing your temp or session directory isn't enough, you can always write a session viewer in your admin.cgi :)

    Now to add sub validated_session { } and sub url_for { } and sub valiDaaTTTee { } ... redirect comes from plugin

      ok. this design above i got to decipher now. it looks semantically really nice. thanks.

        ok. this design above i got to decipher now. it looks semantically really nice. thanks.

        :) hmm, an offline dev env/test/decipher tool

        #!/usr/bin/perl -- ## collect.t ## ## #!/usr/bin/perl -- use strict; use warnings; use TestCGIApplication; use Test::More qw/ no_plan /; ## ok/like ... my $out = collectQuery( qw/ / ); like( $out, qr/welcome/, "empty page is welcoming " ); $out = collectQuery( qw/ t1 t1 t2 t2 cbox oncbox / ); like( $out, qr/invalid/, "invalid input @args" ); $out = collectQuery( valid => qw/ t1 t1 t2 t2 cbox off / ); like( $out, qr/Location/, "they're valid and i'm redirected" ); # ... more tests here?? Test::More::done_testing(); exit( 0 ); sub collectQuery { my $app = TestCGIApplication->new; $app->query( CGI->new( { @_ } ) );; return $app->collectPage; } sub TestCGIApplication::collectPage { ... }

        When you've got TestCGIApplication::collectPage and helpers working, you move it into TestCGIApplication.pm , , and start a new test file

        Some tips Re: loop exits after printing the file, zentara package/module tutorial )