Jason, thanks. The way you do the push helped me. I was putting the values into a temporary hash and then assigning the hash as a reference. I wanted to do it more directly like you did, but didn't know the semantics.
Regarding this:
$selected = 1 if i_want_this_option_selected( $option );
and
<TMPL_LOOP NAME=OCCUPATION_LOOP> <option value="<TMPL_VAR NAME=VAL>" <TMPL_IF NAME="SELECTED">SELECTED</TMPL_IF>><TMPL_VAR NAME=TEXT></option> </TMPL_LOOP>
Do you think this is more efficient, or is it more efficient to do as Puneet suggested:
definitely as Puneet suggested ;-).
Seriously, unless you are dealing with gazillions of moolabytes of data being hit every second by the entire population of Wyoming, don't sweat.
That said, my philosophy is to dump as much work on the database as possible. Why? -- because db programs have been developed over years and years (not that Perl has not been, but your or my code may not have the same advantage), db servers are typically fast machines, db software have been honed to do set processing, evaluations, calculations, etc. There is a lot of science behind db theory. Definitely use it to your advantage.
Of course, not everything is amenable to a SQL statement. That is where Perl can shine.
$selected = ' selected' if i_want_this_option_selected( $option );
and
<TMPL_LOOP NAME=OCCUPATION_LOOP> <option value="<TMPL_VAR NAME=VAL>"<TMPL_VAR NAME=SELECTED>><TMPL_VAR
NAME=TEXT></option>
</TMPL_LOOP>
It seems to me the latter would be more efficient? If I am already testing my criteria for selected, then I don't have to do an "if" again in the HTML. In other words, is it more efficient to resolve the variable contents, or to test variable?
Mark
----- Original Message ----- From: "Jason Purdy" <[EMAIL PROTECTED]>
To: "Mark Fuller" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Monday, May 03, 2004 2:36 PM
Subject: Re: [htmltmpl] Select/option How to set "selected"?
Hi Mark,
How are you determining which option to pre-select? It might be better to use HTML::FillInForm.
Other than that, here's what you would do if you want to re-invent the wheel:
### In your programming code ### my $template = HTML::Template->new( 'filename' => 'file.TMPL' ); my $occloop_ar = []; # occupation loop array ref. while ( my ( $option, $value ) = $sth->fetchrow_array ) { my $selected = 0; $selected = 1 if i_want_this_option_selected( $option ); push @$array_ref, { 'VAL' => $option, 'TEXT' => $value, 'SELECTED' => $selected, }; } $template->param( 'OCCUPATION_LOOP' => $occloop_ar );
### Then in your template code ### Occupation: <select name="occupation"> <TMPL_LOOP NAME=OCCUPATION_LOOP> <option value="<TMPL_VAR NAME=VAL>" <TMPL_IF NAME="SELECTED">SELECTED</TMPL_IF>><TMPL_VAR NAME=TEXT></option> </TMPL_LOOP>
Cheers,
Jason
------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ Html-template-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/html-template-users
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
Html-template-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/html-template-users
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
Html-template-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/html-template-users