Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 17 HTML
  gp 17.1 HTML_BBCodeParser
  gp 17.2 HTML_Crypt
  gp 17.3 HTML_Page2
    gp 17.3.1 Methoden zur Manipulation des Heads
    gp 17.3.2 Methoden zur Manipulation des Bodys
    gp 17.3.3 Ausgabe der HTML-Daten
  gp 17.4 HTML_CSS
    gp 17.4.1 Ausgabe des Stylesheets
  gp 17.5 HTML_Javascript
  gp 17.6 HTML_Template_IT
  gp 17.7 HTML_Template_Flexy
    gp 17.7.1 Fomulare in Flexy
    gp 17.7.2 Plugins
  gp 17.8 HTML_Form
  gp 17.9 HTML_QuickForm
    gp 17.9.1 Standard-Formularelemente
    gp 17.9.2 Erweiterte Formularelemente
    gp 17.9.3 Gruppen
    gp 17.9.4 Verarbeitung des Formulars
    gp 17.9.5 Filter
    gp 17.9.6 Serverseitige Validierung
    gp 17.9.7 Clientseitige Validierung
    gp 17.9.8 Datei-Uploads
    gp 17.9.9 Templates
  gp 17.10 HTML_QuickForm_Controller
  gp 17.11 HTML_Menu
  gp 17.12 HTML_TreeMenu
  gp 17.13 HTML_Progress
  gp 17.14 HTML_Table
  gp 17.15 HTML_Table_Matrix
  gp 17.16 Pager


Rheinwerk Computing

17.15 HTML_Table_Matrix  toptop


Besprochene Version: 1.0.7 Lizenz: PHP-Lizenz 3.0
Klassendatei(en): HTML/Table/Matrix.php

Das Paket HTML_Table_Matrix stellt eine sehr einfache Lösung dar, um Daten, die in einem Array vorliegen, in Form einer Tabelle ausgeben zu lassen. Die Daten können hierbei entweder von links nach rechts oder rechts nach links ausgegeben werden. Eine spaltenweise Ausgabe ist momentan nicht vorgesehen.

require_once ('HTML/Table/Matrix.php'); 
 
// Daten fuer die Tabelle 
$roh_daten=array( 'Hose', 10, 52.50, 
                  'Jacke', 5, 38.00, 
                  'Schuhe',12, 33.00); 
 
// Spaltenueberschriften 
$ueberschriften = array('Artikel','Anzahl','Preis'); 
 
// Zusammenfuehren der Daten 
$ausgabe=array_merge($ueberschriften,$roh_daten); 
 
// Neues Matrix-Objekt mit Attributen fuer Tabelle 
$matrix = new HTML_Table_Matrix('border = "1"'); 
 
// Daten uebergeben 
$matrix->setData($ausgabe); 
 
// Groesse definieren 
$breite=3; // 3 Spalten 
// Fuer den Fall, dass ein Wert zu wenig da ist, aufrunden 
$zeilen= ceil(count($ausgabe)/$breite); 
 
// Tabellengroesse festlegen 
$matrix->setTableSize($zeilen,$breite); 
// Nullpunkt definieren 
$matrix->setFillStart(0,0); 
// Neuen Filler ableiten 
$filler = HTML_Table_Matrix_Filler::factory('LRTB', $matrix); 
// Filler an Matrix uebergeben 
$matrix->accept($filler); 
// Tabelle ausgeben 
echo $matrix->toHtml();

Listing 17.31 Ausgabe von Datensätzen mit HTML_Table_Matrix

In Listing 17.31 wird zuerst ein Array mit Daten befüllt. Um sicherzustellen, dass korrekte Spaltenüberschriften vorhanden sind, wird dieses Array mit einem anderen zusammengeführt, in dem Überschriften vorhanden sind.

Der Konstruktor der Klasse HTML_Table_Matrix benötigt keine Parameter, aber ihm können die Parameter für das <table>-Tag in Form eines Strings oder Arrays übergeben werden. Dem resultierenden Objekt können die auszugebenden Daten mit der Methode setData() übergeben werden. Ausgehend davon, dass die Tabelle 3 Spalten haben soll, wird in Listing 17.31 dann die Anzahl der benötigten Zeilen dynamisch berechnet. Die Anzahl der Zeilen und Spalten wird anschließend an die Methode setTableSize() übergeben, die die Größe der Tabelle festlegt. Die hier angegebene Größe ist verbindlich. Sollten mehr Datensätze als Tabellenfelder da sein, werden nicht alle Datensätze ausgegeben.

Die Methode setFillStart() legt fest, an welcher Position in der Tabelle der Füllvorgang beginnen soll. Die erste Zahl bezeichnet die Zeile und die zweite die Spalte, wobei der Bezugspunkt 0,0 in der linken oberen Ecke liegt. Allerdings stellt sich hier die Frage, welchen Sinn es machen könnte, etwas anderes als 0,0 anzugeben, da Felder, die leer bleiben, nicht nachträglich gefüllt werden können.

Nachdem diese Vorarbeit geleistet ist, können Sie sich für einen Filler entscheiden. Dieser definiert, wie die Daten in die Tabelle ausgegeben werden. Der Filler wird von der statisch aufzurufenden Methode factory() zurückgeliefert, die in der Klasse HTML_Table_Matrix_Filler definiert ist. Sie bekommt einen der Strings 'LRTB' oder 'RLTB' übergeben. LRTB steht für »Left Right, Top Bottom« und bedeutet, dass der Filler die Zeilen von links nach rechts befüllt und eine Zeile nach der anderen abarbeitet. RLTB ist die Abkürzung für »Right Left, Top Bottom«; in diesem Fall wird Zeile für Zeile von rechts nach links gefüllt. Natürlich sind auch noch andere Regelwerke zum Füllen denkbar. Zurzeit sind allerdings keine definiert, was aber nicht heißen soll, dass nicht noch welche dazukommen.

Das Filler-Objekt muss dann mit der Methode accept() an das HTML_Table_Matrix-Objekt übergeben werden, das dann mithilfe von toHtml() die generierten Tabellendaten zurückgeben kann. Die Ausgabe von Listing 17.31 sehen Sie in Abbildung 17.17.

Abbildung 17.17 Von HTML_Table_Matrix generierte Tabelle

 <<   zurück
     
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: PHP PEAR
PHP PEAR
Jetzt Buch bestellen!
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Rheinwerk-Shop: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Rheinwerk-Shop: MySQL 5.6






 MySQL 5.6


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern