Schrift
[thread]705[/thread]

HTML::Template selectbox

Leser: 1


<< >> 5 Einträge, 1 Seite
decoder
 2006-03-30 13:16
#7288 #7288
User since
2006-03-30
22 Artikel
BenutzerIn
[default_avatar]
hi liebe gemeinde,

es ist zum ersten mal das ich ein template system verwende um code und design zu trennen, ich bin sehr von HTML::TEMPLATE begeistert da es sehr einfach zuhandhaben ist.

ich möchte den inhalt aus einer DatenBank-tabelle auslesen und den inhalt in eine <select box ausgeben.

das funktioniert sehr gut mit den TMPL_LOOP.

was ich allerdings möchte und wo ich gegen eine wand renne wie kann ich es realisieren eine <select box so zu generieren:

Code: (dl )
1
2
3
4
5
6
<select name="xy">
<option value="1">1
<option value="2">2
<option value="3" selected>3
<option value="5">4
</select>


wenn $xy = 3; (natürlich kann der wert beliebig sein)

ohne template würde ich das einfach in der schleife mit einen if abfragen aber so hab ich echt keinen plan.
vielleicht gibt es da ja eine gescheite möglichkeit.
vielen dank.
renee
 2006-03-30 13:55
#7289 #7289
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Steht in $xy die Nummer oder der Wert der Ausgewaehlt sein soll?

Ich persönlich würde es so ungefähr machen:

Template:
Code: (dl )
1
2
3
4
5
<select name="<!-- TMPL_VAR NAME=SELECT -->">
<!-- TMPL_LOOP NAME=VALUES -->
<option value="<!-- TMPL_VAR NAME=VALUE -->" <!-- TMPL_IF NAME=SELECTED -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR NAME=VALUE --></option>
<!-- /TMPL_LOOP -->
</select>


Im Skript dann:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my $selectname = "xy";
my $xy = 'selectedValue';
my @array;

[... Datenbankverbindung und Abfrage ...]

while(my ($value) = $sth->fetchrow_array()){
my $selected = $value eq $xy ? 1 : 0;
push(@array,{VALUE => $value, SELECTED => $selected});
}

$template->param({
SELECT => $selectname,
VALUES => \@array,
});


(ungetestet)\n\n

<!--EDIT|renee|1143712605-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
decoder
 2006-03-30 20:47
#7290 #7290
User since
2006-03-30
22 Artikel
BenutzerIn
[default_avatar]
super danke für die schnelle antwort!

eigentlich logisch ein 2 dimensionales array, manchmal sieht man echt den wald vor lauter camelen nichtmehr :)
MartinR
 2006-03-31 08:56
#7291 #7291
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Hi,

also ich benutze auch H::T bzw. H::T::C und lasse mir aber die Formularfelder alle im Script per CGI.pm erstellen und mit defaultwerten füllen. Vielleicht ein anderer Ansatzpunkt. Aber das erspart im HTML-Code einige Loop's und If's. Dort habe ich dann nur noch ein TPML_VAR für das Feld eben.
renee
 2006-03-31 09:54
#7292 #7292
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dafür hast Du dann alles im Perl-Code, was ich persönlich auch nicht so toll finde. Es hat alles seine Vor- und Nachteile.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 5 Einträge, 1 Seite



View all threads created 2006-03-30 13:16.