First off, your initial script doesn't need to use CGI. It just throws up a template, which is just a bunch of print statements mostly. Assuming your template is nicely formated HTML (it should be) you should not have the extra print statements at the end of your script:
print "<p>"; print "Good-bye Cruel World<br>\n";
Second, as the previous poster said, you have to make sure that your template has correct HTML in its form tag to point to your processing script. (I'm running with your idea to have seperate scripts, this is not a given, it can be all in one script...) A properly formated form tag might look like:
<form name="form" method="post" action="process.cgi" >
This script would grab your choice something like this:
That's the basic idea. There's a bit of work getting the details right (got to have the template var names match the key of the hash you pass into the HTML::Template object for example) you should do some sanity checking on the inputs, handle errors if things aren't as expected with the inputs and or the db access, etc.use CGI; use strict; my $CGI = CGI->new; # this assumes the creating HTML has a option list called # my_menu my $report_num = $CGI->param("my_menu"); # do some stuff to lookup the report based on $report_num ... # output print header; my $t = HTML::Template->new( filename => 'nc1_rpt1_summary.tmpl' ); $t->param( foo => 'FakeDomain.com', stuff => "blah", morestuff => "foobar", %hashofstufffromDB, ); print $t->output;
You might want to start with a very simple script and a very simple template and build from there.
-------------------------------------
Nothing is too wonderful to be true
-- Michael Faraday
In reply to Re: HTML::Template, CGI, passing variables, launching new script
by freddo411
in thread HTML::Template, CGI, passing variables, launching new script
by Lori713
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |