>What I'm currently using is this method > > <input name="my_input_box"<TMPL_IF NAME="my_input_box_value"> > value="<TMPL_VAR NAME="my_input_box_value">"</TMPL_IF>>
I don't believe you need the conditional. You can let "my_input_box_value" evaluate always. If it contains nothing, it will evaluate to nothing. Your template won't be as cluttered. >However, how can this be done for select boxes (drop-down lists)? This was the thing that was the most difficult for me. I thought H::T should have a mechanism to handle this more directly. What I do is loop selecting my values from a database into a hash (using DBI "fetch"). ======================================= while ($sth_select_some_list->fetch) { # %db_vals is automatically populated because the prepared statement # has "bind_col" each column to a $db_vals{key}. if ($db_vals{code} eq $selected_value) { $sel = ' selected="selected"'; } else { $sel = ''; } push @loop_data, { VAL => $db_vals{code}, TEXT => $db_vals{display}, SELECTED => $sel, LANG => ' lang="en"' } } # end loop $template->param(MY_LOOP => [EMAIL PROTECTED]); ================================== And then the template looks like this: ================================== <select id="my_list" name="my_list"> <TMPL_LOOP NAME=MY_LOOP><option value="<TMPL_VAR NAME=VAL>"<TMPL_VAR NAME=SELECTED>><TMPL_VAR NAME=TEXT></option></TMPL_LOOP> </select> ================================== A few months ago someone posted a nifty SQL select that created the array to be passed to the template (all in one SQL). I actually do a one-time select into a hash, and regenerate the select list with each display. I do this because I translate the values selected from a table into whatever language the visitor chose. I don't want to do that with each display. So, I select and translate when I detect the first time the page will be displayed in that language. I generate the select list from a those values which I keep in memory as long as my script is in memory. This gets back to how I wish there was a way to perform evaluation upon the cached H::T template. I could evaluate the select list values with the language. And then only evaluate the "selected" attribute for each display. Mark ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Html-template-users mailing list Html-template-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/html-template-users