in reply to Re: CGI::Application/HTML::Template problem
in thread CGI::Application/HTML::Template problem

that works, but i think it's the TMPL_LOOP that's giving me troubles...i think there's something in associating it with CGI (and yes i meant associate by coerce) that the TMPL_LOOP doesn't associate it's tags with CGI...
meh.
  • Comment on Re^2: CGI::Application/HTML::Template problem

Replies are listed 'Best First'.
Re^3: CGI::Application/HTML::Template problem
by wfsp (Abbot) on Jan 12, 2006 at 17:36 UTC
    I found your snippet a bit tricky to digest so I've blown some whitespace into it.

    sub retrieve { my $self = shift; use Data::Dumper; my $q = $self->query; my $tmpl = $self->load_tmpl( "showitem.html", loop_context_vars =>1, associate => $q ); $tmpl->param( product => $self->dbh->selectall_arrayref( q[ SELECT image, price, description, serial FROM product WHERE id = ? ], { Slice => {} }, $q->param('item') ) ); return $frm->build_page( { title => "Boyo's Place: " . $self->dbh->selectrow_array( q[ SELECT name FROM product WHERE id=? ], { Slice => {} }, $q->param('item') ), output => $tmpl->output } ), $q->code(Dumper(\$tmpl)); }
    I would use a lot of temp vars to simplify the code and help establish what is happening.

    e.g.

    my $arrayref = $self->dbh->selectall_arrayref( etc.... die Dumper $arrayref; # on a subsequent run my $arrayref2 = $self->dbh->selectrow_array( etc... die Dumper $arrayref2; # and even die Dumper $q->param('item');
    You need to be sure you are feeding your template loop an array of hash refs. Each hash ref will need

    item => $item_value

    in it. You may have to loop through the dbh output yourself to put that in.

    Hope that helps