I find it works pretty well using TMPL_LOOP and an array of hashref's
from the db - I loop through the data array and set the 'Selected'
item before passing into the template, like so:
in the viewer module:
my $product_types = $self->dbh->selectall_arrayref("select * from
product_type where ONIX_Code like 'B%'", { Slice => {} });
if ($data->{ProductTypeID}) {
foreach my $row (@$product_types) {
$row->{Selected} = 'selected' if $row->{ProductTypeID} eq
$data->{ProductTypeID};
}
}
$template->params(product_types => $product_types);
in the template:
<select class="inputbox" name="ProductTypeID">
<TMPL_LOOP NAME="product_types">
<option value="<TMPL_VAR NAME="ProductTypeID">" <TMPL_VAR
NAME="Selected">><TMPL_VAR NAME="ONIX_Code"> : <TMPL_VAR
NAME="ProductType"></option>
</TMPL_LOOP>
</select>
<TMPL_VAR NAME="err_ProductTypeID">
mike
On 14 April 2010 22:52, Adam <[email protected]> wrote:
> I want to have a dropdown menu that shows years 2000 thru 2015. I'm using
> HTML::Template and I know I can pass an array ref to HTML::Template and loop
> over it to make the menu, but how would I put in a "selected" year? What's
> the best method?
##### CGI::Application community mailing list ################
## ##
## To unsubscribe, or change your message delivery options, ##
## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ##
## ##
## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ##
## Wiki: http://cgiapp.erlbaum.net/ ##
## ##
################################################################