Embperl - building dynamic websites with Perl


Dynamische Tabellen
[ << Prev: Meta-Commands ] [ Content ] [ Next: Formularfelder >> ]

Ein sehr leistungsfähiges Feature von Embperl ist das Erzeugen von dynamischen Tabellen. Am einfachsten lassen sich auf diesem Weg Perlarrays in Tabellen umwandeln (ein- oder zweidimensional, gleich- und ungleichmäßige), aber auch andere Datenquellen sind möglich.



Anzeigen eines Perlarraystop
 [- @a = ( 'A', 'B', 'C') ; -]
 <TABLE BORDER=1>
   <TR>
        <TD> [+ $a[$row] +] </TD>
   </TR>
 </TABLE>

Das obige Beispiel gibt einfach eine Tabelle mit drei Zeilen, welche A, B und C enthalten aus.

Der Trick dabei ist die Benutzung der magischen Variable $row, welche die Zeilennummer innerhalb der Tabelle enthält und automatisch für jede Zeile um eins erhöht wird. Die Tabelle ist zu Ende, wenn der Block, in dem $row auftaucht, undef zurückgibt. Das funktioniert auch mit $col für Spalten und $cnt kann benutzt werden, wenn die Elemente, nach einer bestimmten Anzahl, in die nächste Reihe rutschen sollen.

Dies funktioniert ebenso mit table/select/menu/ol/dl/dir



Einfaches DBI Beispieltop

Hier ist ein einfaches DBI Beispiel, welches das Ergebnis einer Anfrage in einer zwei dimensionalen Tabelle anzeigt, mit den Feldnamen als Überschrift in der ersten Zeile:

 [-
 # Verbinden mit Datenbank
  $dbh = DBI->connect($DSN) ;

 # SQL Select vorbereiten
 $sth = $dbh -> prepare ("SELECT * from $table") ;

 # Datenbankanfrage ausführen
 $sth -> execute ;

 # $head erhält die Feldnamen für die Tabellenüberschrift
 $head = $sth -> {NAME} ;

 # $dat erhält die Datensätze
 $dat = $sth -> fetchall_arrayref ;
 -]

 <table>
    <tr><th>[+ $head->[$col] +]</th></tr>
    <tr><td>[+ $dat -> [$row][$col] +]</td></tr>
 </table>

[ << Prev: Meta-Commands ] [ Content ] [ Next: Formularfelder >> ]


© 1997-2023 Gerald Richter / actevy