Mark Fuller wrote:

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

Reply via email to