Schrift
[thread]42[/thread]

mit HTML::Template TMPL_LOOP Tabellen füllen



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
Ronnie
 2003-09-19 13:43
#4066 #4066
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Da ich sowieso meine Applikation teilweise neu stricken muss, dachte ich mir, dann lerne ich wenigstens noch was dazu und verwende HTML::Template. Leider scheitere ich schon recht früh bei dem Befüllen einer Tabelle. Es wird immer wieder der selbe Inhalt ausgegeben?

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
48
49
50
51
52
#!/usr/bin/perl

use warnings;
use strict;
use DBI;
use HTML::Template;

my $dbh;
my $such_standort = 'M';

my %row;
my @loop;

$dbh = DBI->connect ("DBI:mysql:host=192.168.42.6;database=cdmcrm",
                    "www-data", "www-data", {PrintError => 0, RaiseError => 1});

&mitarbeiter_suchen();

$dbh->disconnect();
exit(0);

sub mitarbeiter_suchen {
 my $sth = $dbh->prepare ("
  SELECT mitarbeiter.Nachname, mitarbeiter.Vorname, standorte.Standort, gesellschaften.Gesellschaft
FROM  mitarbeiter
JOIN  standorte, gesellschaften
WHERE mitarbeiter.Standort = standorte.SID
AND mitarbeiter.Gesellschaft = gesellschaften.GID
AND (standorte.Standort LIKE '$such_standort%')
                          ");
 $sth->execute();
 while (my ($nachname, $vorname, $standort, $gesellschaft) = $sth->fetchrow_array()) {

  %row = (
        nachname => $nachname,
            vorname => $vorname,
            standort => $standort,
            gesellschaft => $gesellschaft
          );
   push(@loop, \%row);
 }
 $sth->finish();

 &html_ausgabe();
}

sub html_ausgabe {
 my $template = HTML::Template->new(filename => 'staff.tmpl');
 $template->param(staff_loop => \@loop);
 print "Content-Type: text/html\n\n";
 print $template->output;
}


Was mache ich falsch?

Gruss,
Ronnie\n\n

<!--EDIT|Ronnie|1063964683-->
Ronnie
 2003-09-19 13:50
#4067 #4067
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Sorry, ich sollte länger nachdenken bevor ich poste. Ich übergebe immer die selbe Referenz an @loop.
kabel
 2003-09-19 17:02
#4068 #4068
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
solange es was bringt ;)
-- stefan
Free Faq
 2003-09-19 17:28
#4069 #4069
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
Muss man immer gleich ein Modul verwnden?
Ich hab das bei mir so gelöst:
Code (perl): (dl )
1
2
3
4
foreach (0..$#Template) {
$ReadFile[$_] =~ s/\[TITLE\]/$Title/;
...
}

Oder hat das irgendeinen Nachteil gegenüber HTML::Template???
Haut mich nicht, ich bin ein Noob!
kabel
 2003-09-19 19:18
#4070 #4070
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
quelle:

Quote
Go on, admit it: You've written a templating system. It's OK, nearly everyone has at some point. You start with something beautifully simple like $HTML =~ s/\$(\w+)/${$1}/g and end up adding conditionals, loops and includes until you've created your own unmaintainable monster.


die vorteile eines so populären modules muss ich wohl nicht extra hervorheben? 8)
-- stefan
Free Faq
 2003-09-19 20:01
#4071 #4071
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
Wie hab ich das genau zu verstehen? Das mein Script unhaltbar gross wird? langsam?

Hab das mal bei mir getestet. mit und ohne ERsetzen der Templates. Ist so ziemlich gleich schnell.
Haut mich nicht, ich bin ein Noob!
Ronnie
 2003-09-19 20:05
#4072 #4072
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Nee, Kabel meint das dein Temlate-System unwartbar wird, wenn du die ganzen Features implemetierst, die andere auch schon mal gebastelt haben.
kabel
 2003-09-19 20:09
#4073 #4073
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
@Ronnie: yepp.
HTML::Template ist getestet, relativ vollständig, einfach.
wenn für dich die s///g lösung reicht, ist es ja ok.
nur wenn du mehr willst, solltest du sehr gute gründe haben,
die bestehenden template module nicht zu benutzen.

Perlmonks:über eckige und runde räder
-- stefan
Strat
 2003-09-19 20:50
#4074 #4074
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
fuer manche sachen reicht mir auch die einfache ersetzung, aber sobald komplexere sachen wie for-schleifen oder if-bloecke reinkommen, wirds schwieriger. und da es da eh schon hervorragende Module gibt, wieso das Rad neu erfinden? Hast du dir die Doku zu HTML-Template schon mal durchgelesen? Ich bin im FAQ-Forum gerade dabei, sie auf Deutsch durchzulesen.

Ich kaempfe beruflich haeufig mit eben solchen Problemen rum, dass Leute keine Perl-Module verwenden (groesstenteils aus Unwissenheit, teilweise auch aus Dummheit), dann ewig Zeit brauchen, um was zu coden und ueberdies auch Fehler reinbringen. Sowas macht in meinen Augen keinen besonders professionellen Eindruck...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Free Faq
 2003-09-19 21:49
#4075 #4075
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
1. Find ich das mit den Template echt net schwer. Aber da mag wohl jeder seine eigene Meinung haben.
2. Ich code Sachen lieber selber, dann weiss ich was ich habe und bei Fehlern kann ich das Problem schnell eingrenzen. Sonst könnte ich ja gleich komplett fertige Scripts runterladen und installieren :(
3. Ich hatte zwar gute Englischnoten, aber dennoch weiss ich viel zuwenig Wörter, so das ich die grossteils englischen How Tows der Module - ohne bei jedem 2. Wort nachschlagen zu müssen - nicht verstehe.
4. Nicht alle Server alle Module installiert haben.
5. Gerade das selber austüffteln finde ich beim Programmieren so interessant! Das hat nichts mit Dummheit zu tun! Einige programmieren Beruflich, da sind Module sicher empfehlenswert. Aber privat? Neeeeeeeeeeee *Meine Meinung*
Klar gewisse Module muss man einbinden (Z.B. für: Cookies, MD5,...), aber wenns nicht sein muss, mach ich es auch nciht.
Haut mich nicht, ich bin ein Noob!
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2003-09-19 13:43.