Schrift
[thread]505[/thread]

tmpl_loop switch



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
nurri
 2005-06-06 17:17
#5050 #5050
User since
2005-06-06
18 Artikel
BenutzerIn
[default_avatar]
ich würde gern einen anderen
loop ausgeben lassen wenn die datensätze aus z.B: CAT eq "4"

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
my $sql = "SELECT * FROM db50";
my $sth = $dbh->prepare ( $sql ) || die "Kann Satement nicht vorbereiten: $DBI::errstr\n";
$sth->execute();

my $template = HTML::Template->new(filename => 'test2.html');


my (@eintraege,@ergebnisse,@result,@check);

while(my @result = $sth->fetchrow_array()){
push(@ergebnisse,\@result);
}

foreach my $eintrag(@ergebnisse){
my %hash = (
ID => $eintrag->[0],
NAME => $eintrag->[1],
CAT => $eintrag->[2],
);
push(@eintraege,\%hash);
}

if ($eintraege[2] eq "4") {
$template->param(ABFRAGE_2 => \@eintraege);

}
else {
$template->param(ABFRAGE => \@eintraege);
}


kann mir jemand tipps geben bezüglich des arrays ??
renee
 2005-06-06 17:32
#5051 #5051
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe Dein Problem nicht wirklich verstanden! Erkläre es bitte ausführlicher! Was hast Du, wo willst Du hin, was hast Du schon probiert, etc...
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/
nurri
 2005-06-06 19:24
#5052 #5052
User since
2005-06-06
18 Artikel
BenutzerIn
[default_avatar]
hallo renee,

ich habe eine db-tabelle mit drei spalten.

id,name,cat
dann lese ich die datensätze aus z.B

DS1,andreas,5
DS2,michael,4
DS3,johannes,7

etc.


das problem:

meine if() anweisung funktioniert hier nicht , warum ?

ich habe in meinen html-tmpl

zwei loops (snippet)
<tmpl_loop name="ABFRAGE1">
<tmpl_loop name="ABFRAGE2">

ich will nun DS2 in oberem besipiel => da Inhalt von CAT eq "4" ist,
in diesem fall
$template->param(ABFRAGE_2 => \@eintraege);
ausgeben lassen

und wenn der Inhalt von CAT nicht eq "4"
$template->param(ABFRAGE => \@eintraege);
ausgeben lassen

ich hoffe es ist verständlicher - wäre über Tipps,Hilfe sehr dankbar\n\n

<!--EDIT|nurri|1118071577-->
renee
 2005-06-07 00:47
#5053 #5053
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
if ($eintraege[2]->{CAT} eq "4") {
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/
nurri
 2005-06-07 13:42
#5054 #5054
User since
2005-06-06
18 Artikel
BenutzerIn
[default_avatar]
hallo renee,

dein vorschlag funktioniert nicht ...

früher hatte ich html quelltext im cgi-script

im prinzip habe ich da obige html::template problem früher so gelöst:

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
while (my @result = $sth->fetchrow_array) {

if ($result[2] eq "4") {

print qq {
<td>$result[0]</td>
<td>$result[1]</td>
<td><a href="link.pl">$result[2]</a></td> # es geht mir um diesen link bei der ausgabe der datensätze wenn spalte CAT eine zahl 4 beinhaltet, andernfalls

};
}
else {

print qq {
<td>$result[0]</td>
<td>$result[1]</td>
<td>$result[2]</td>

};


}
}


aber dies müsste man doch mit html::template auch hinbekommen
renee
 2005-06-07 14:06
#5055 #5055
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dann würde ich das jetzt so machen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my $sql = "SELECT * FROM db50";
my $sth = $dbh->prepare ( $sql ) || die "Kann Satement nicht vorbereiten: $DBI::errstr\n";
$sth->execute() or die $dbh->errstr();

my $template = HTML::Template->new(filename => 'test2.html');

my @ergebnisse

while(my @result = $sth->fetchrow_array()){
$result[2] = '<a href=="link.pl">'.$result[2].'</a>' if($result[2] == 4);
my %hash = (
ID => $result[0],
NAME => $result[1],
CAT => $result[2],);
push(@ergebnisse,\%hash);
}

$template->param(ABFRAGE => \@ergebnisse);
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/
nurri
 2005-06-07 14:30
#5056 #5056
User since
2005-06-06
18 Artikel
BenutzerIn
[default_avatar]
hallo renee,

vielen dank für deine mithilfe
nurri
 2005-06-07 16:03
#5057 #5057
User since
2005-06-06
18 Artikel
BenutzerIn
[default_avatar]
eine Frage hätte ich noch ...

warum kann das nicht gehen ... ich füge dem %hash einen weiteren string $set hinzu

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my (@ergebnisse,$set);

while(my @result = $sth->fetchrow_array()){
$result[2] = '<a href=="link.pl">'.$result[2].'</a>' if($result[2] == 4);


$set = '<img src="images/ic_parkingAvailable.gif">' if($result[2] == 4);

my %hash = (
ID => $result[0],
NAME => $result[1],
CAT => $result[2],
CHECKED => $set,);
push(@ergebnisse,\%hash);
}

$template->param(ABFRAGE => \@ergebnisse);


aber es erscheint keine Ausgabe



Code: (dl )
1
2
3
4
5
6
7
8
 <tmpl_loop name="ABFRAGE">
<tr>
<td> <INPUT TYPE="text" NAME="" value="<tmpl_var name="ID">"></td>
<td><tmpl_var name="NAME"></td>
<td ><tmpl_var name="CAT"></td>
<td ><tmpl_var name="CHECKED"></td>
</tr>
</tmpl_loop>
renee
 2005-06-08 01:26
#5058 #5058
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
gibt's eine Fehlermeldung?? Eigentlich sollte das so funktionieren...
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/
Gast Gast
 2005-06-08 21:06
#5059 #5059
es gibt keine fehlermeldungen ...

die zuweisung fur den string $set funktioniert aber nicht ... da keine ausgabe erscheint

warum ???
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2005-06-06 17:17.