Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

get query string to HTML::Template

by bcochofel (Novice)
on Dec 19, 2006 at 17:03 UTC ( [id://590701]=perlquestion: print w/replies, xml ) Need Help??

bcochofel has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I want to create a var to pass to HTML::Template (LOOP) with param and values of the get query string. How can I do this?

Replies are listed 'Best First'.
Re: get query string to HTML::Template
by samtregar (Abbot) on Dec 19, 2006 at 18:06 UTC
    Aside from the painfully obvious:

    foreach my $name ($query->param) { $template->param($name => scalar $query->param($name)); }

    HTML::Template also provides:

      $template = HTML::Template->new(associate => $query, ...);

    Although, since you mentioned a loop, maybe you really wanted:

      $template->param(some_loop => [ map { { name => $_, value => scalar $query->param($_) } } $query->param ] );

    Maybe you should slow down and tell us what you're really trying to do.

    -sam

Re: get query string to HTML::Template
by madbombX (Hermit) on Dec 19, 2006 at 18:11 UTC
    Although I agree with everyone else with regards to properly asking a question, I think this may point you in the right direction: HTML::Template Tutorial. In it, there is a discussion about using the attribute "associate" when constructing a new template. Without trying to steal jeffa's thunder, I am quoting him as saying:
    That's where associate saves the day. It allows you to inherit paramte +r values from other objects that have a param() method that work like + HTML::Template's param() - objects like CGI.pm!

    I strongly recommend you read CGI and HTML::Template. There is also a good HTML::Template reference here. That should give you plenty of information to get started with.

Re: get query string to HTML::Template
by PockMonk (Beadle) on Dec 19, 2006 at 17:09 UTC
Re: get query string to HTML::Template
by shmem (Chancellor) on Dec 19, 2006 at 17:13 UTC
    Which parts of the CGI and HTML::Template documentation are hard to understand for you?
    What did you attempt so far?

    See How (Not) To Ask A Question.

    --shmem

    _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                  /\_¯/(q    /
    ----------------------------  \__(m.====·.(_("always off the crowd"))."·
    ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
    A reply falls below the community's threshold of quality. You may see it by logging in.
Re: get query string to HTML::Template
by artist (Parson) on Dec 19, 2006 at 17:53 UTC
Re: get query string to HTML::Template
by lithron (Chaplain) on Dec 21, 2006 at 16:10 UTC
    It sounds like you are having problems populating a LOOP data structure for use with HTML::Template. I also had problems finding information about how to do this, so I'm going to post some code that does it.. hope no one minds. I use something similar to this in an application of mine. $sth is a DBI database handle that is pulling data out of a MySQL database.
    my @loop_data = (); while ( my @rw = $sth->fetchrow_array ) { my %row_data; $row_data{ID} = $rw[0]; $row_data{USERNAME} = $rw[1]; $row_data{TIME} = $rw[3]; push( @loop_data, \%row_data ); } $template->param( VIEW_DATA => \@loop_data ); print $template->output();
    The template would look something like this:
    <TMPL_LOOP NAME=VIEW_DATA> ID: <TMPL_VAR NAME=ID> <br> USERNAME: <TMPL_VAR NAME=USERNAME> <br> TIME: <TMPL_VAR NAME=TIME> <br> </TMPL_LOOP>
    As for getting a list of all params that were passed to the CGI module, why? Normally you only want to deal with data you were expecting (aka, data that was passed as part of an HTML form, or data that was part of the spec for a web service). Trying to process data you weren't expecting tends to lead to Bad Things (tm).

    HTH,
    Lithron

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://590701]
Approved by Corion
Front-paged by andyford
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (2)
As of 2024-04-24 23:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found