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 <a...@spatialsystems.org> 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/                 ##
##                                                            ##
################################################################

Reply via email to