Thread HTML::Template + sub ärger: selectbox (8 answers)
Opened by decoder at 2006-05-23 01:08

Ronnie
 2006-05-23 01:45
#7754 #7754
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
ungetestet, aber sollte entsprechend funktionieren:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl -w

use strict;

use Data::Dumper;
#use CGI;
#use CGI::Carp qw(fatalsToBrowser);
#use HTML::Template;

#my $template = HTML::Template->new( filename => '1.tmpl' );
#my $cgi = CGI->new();

sub build_selectbox {
my ($l_name, $selected, @options) = @_;
return { $l_name => [ map {
{
selectbox_label => $options[$_],
selectbox_value => $_,
selectbox_selected => $selected == $_ ? 1 : 0,
}
} (0 .. $#options) ] };
}

my @a_array = ( '---', 'Berlin', 'Wien', 'Bern' );
die Dumper &build_selectbox( 'loop_kursort', 2, @a_array );
# $template->param( build_selectbox( 'loop_kursort', 2, @a_array ) );
# print $template->output;

Hier die Ausgabe von Data::Dumper:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$VAR1 = {
'loop_kursort' => [
{
'selectbox_label' => '---',
'selectbox_selected' => 0,
'selectbox_value' => 0
},
{
'selectbox_label' => 'Berlin',
'selectbox_selected' => 0,
'selectbox_value' => 1
},
{
'selectbox_label' => 'Wien',
'selectbox_selected' => 1,
'selectbox_value' => 2
},
{
'selectbox_label' => 'Bern',
'selectbox_selected' => 0,
'selectbox_value' => 3
}
]
};

Ich bin nicht sicher ob man param so verwenden kann, einfacher ist es allemal, wenn man den $l_name erst gar nicht an die Funktion übergibt.\n\n

<!--EDIT|Ronnie|1148334532-->

View full thread HTML::Template + sub ärger: selectbox