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

decoder
 2006-05-23 01:08
#7751 #7751
User since
2006-03-30
22 Artikel
BenutzerIn
[default_avatar]
Hallo

ich hab mir die subroutine geschrieben, die mir eine Select-box aufbaut in "HT" es soll mit ein parameter (immer ein integer) übergeben werden der einen Wert aus der Selectbox standartmässig auswählt (selected).

Ich wäre sehr dankbar wenn ihr mir da helfen könntet. Jeder Tip und Hinweis ist für mich Goldwert auch am Layout :)

Ich hab laut logfile auf (mod-perl) folgende probleme:

Code: (dl )
[Mon May 22 22:52:01 2006] 1.cgi: Variable "$template" will not stay shared at /var/www/perl/1.cgi line 40.

( $template->param({$loop_name => \@a_selectbox_loop}); )
hmm jo ich denke mal ich sollte $template... aus der sub rausnehmen komme aber nicht drauf wie ich einen return zurückmache :(

Code: (dl )
[Mon May 22 22:52:01 2006] 1.cgi: Subroutine build_selectbox redefined at /var/www/perl/1.cgi line 13.


keine Ahnung leider, total ratlos.

Code: (dl )
[Mon May 22 22:52:01 2006] null: Use of uninitialized value in numeric eq (==) at /var/www/perl/1.cgi line 27.


hmm versteh ich auch nicht da ich beim aufruf ja eine "2" mitgebe

Code: (dl )
[Mon May 22 22:52:01 2006] null: Use of uninitialized value in array element at /var/www/perl/1.cgi line 32.


(push(@a_selectbox_loop,{ ...) hmm wird sich wohl auf die vorletze beziehen.


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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl -w

use CGI;
use CGI::Carp qw(fatalsToBrowser);
use HTML::Template;
use strict;

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



sub build_selectbox
{
my ($loop_name, $selected_var, @a_selectbox_values) = @_;

my ($i, $selected, @a_selectbox_loop);

if (!defined($selected_var))
{
$selected_var = 1;
}

for(@a_selectbox_values)
{
$selected=0;

if ($i == $selected_var)
{
$selected=1;
}

push(@a_selectbox_loop,{
selectbox_label => $a_selectbox_values[$i],
selectbox_value => $i,
selectbox_selected => $selected
});
$i++;
}

$template->param({$loop_name => \@a_selectbox_loop});
}

my @a_array = ('---','Berlin','Wien','Bern');
&build_selectbox('loop_kursort', 2, @a_array);

print $template->output;


html template:

Code: (dl )
1
2
3
4
5
<select name="kursort">
<!-- TMPL_LOOP NAME="loop_kursort">
<option value="<!-- TMPL_VAR NAME="selectbox_value"-->"<!-- TMPL_IF NAME="selectbox_selected"--> selected<!-- /TMPL_IF-->> <!-- TMPL_VAR NAME="selectbox_label"--> </option>
<!-- /TMPL_LOOP-->
</select>
\n\n

<!--EDIT|decoder|1148332172-->

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