Tabel Class [v2]

Door Joris van Rijn, 17 jaar geleden, 4.304x bekeken

Met deze class is het mogelijk, snel en simpel of juist heel uitgebreide tabellen te maken.

Versies:
Oude versie: http://phphulp.nl/php/scripts/4/1736/

Gebruik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
    /* In de volgende array staan alle geldige opmaken.
        Dit zijn de settings voor de tabel. Wanneer er geen enkele opgegeven is,
        wordt er geen gebruikt. */

    $settings = array('id'=>'test',
                'class'=>'test_class',
                'bgcolor'=>'#fff',
                'border'=>1,
                'cellpadding'=>0,
                'width'=>'100%');
    
    //Hier maken we de class aan, met bovenstaande opties.            
    $oTable = new Table($settings);
    
    /* Dit is verbetert tov v1. Je kan oneindig veel classes toevoegen.
        Deze worden om en om afgewisseld. Als voorbeeld kan je hierbij dus ODD en EVEN gebruiken.
        Maar 3 klasses afwisselend kan ook. */

    $oTable->setRowClasses('odd','even','derde');
    
    //Hier mee zetten we de hoofd kollommen. NOTE: <<2>>.
    $oTable->setHead('col 1','col 2 en 3 <<2>>','col 4');

    //Zo worden de rijen erin gezet: NOTE: <<4>>
    $oTable->newRow('Rij 1, Col 1','Rij 1, Col 2 en 3 <<2>>','Rij 1, Col 4');
    $oTable->newRow('Rij 2, Col 1','Rij 2, Col 2','Rij 2, Col 3','Rij 2, Col 4');
    $oTable->newRow('Rij 3, Col 1','Rij 3, Col 2 <<3>>');
    $oTable->newRow('Rij 4, Col 1','Rij 4, Col 2','Rij 4, Col 3','Rij 4, Col 4');
    $oTable->newRow('Rij 5, Col 1 <<4>>');
    $oTable->newRow('Rij 6, Col 1 <<3>>','Rij 4, Col 4');
    $oTable->newRow('Rij 7, Col 1','Rij 7, Col 2','Rij 7, Col 3','Rij 7, Col 4');
?>


Rowspans:
Door: " <<NR>>" toe tevoegen achter het veld. Waar NR het aantal kollommen is van de rowspan. Wordt er een Rowspan van dat veld gemaakt. De andere velden worden automatisch weggehaald, ook als ze inhoud bevatten!

Voorbeeld: http://phphulp.freedomdesigns.nl/tabelv2/

Gesponsorde koppelingen

PHP script bestanden

  1. tabel-class-v2

 

Er zijn 12 reacties op 'Tabel class v2'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- Ariën  -
- Ariën -
17 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  $return .= 'Geen geldig aantal rijen';


Wat is er mis met een try..catch blok, en een foutmelding throwen?
Joris van Rijn
Joris van Rijn
17 jaar geleden
 
0 +1 -0 -1
Dan wordt het gelijk minder simpel.
En daar werk ik niet zo mee :']

Als de voordelen heel erg tegen de nadelen opwegen, dan wil ik het wel proberen te begrijpen.
GaMer B
GaMer B
17 jaar geleden
 
0 +1 -0 -1
Nu is de error-message hard-coded. Bij een try - catch blok is het vanuit PHP die een error geeft die je op kan vangen.
Steen
steen
17 jaar geleden
 
0 +1 -0 -1
Die notatie van colspan is niet zo lekker <<2>>, kun je niet iets anders verzinnen?

Als er geen rijen zijn geen fout maar iets anders ("Geen rijen" of iets zelf ingegeven). Anders moet je vanuit mysql weer helemaal naar de num_rows kijken.

Verder zou ik ook kijken naar Styles, die je ipv classes mee kunt geven. Niet zoveel extra moeite om te maken
Joren de Wit
Joren de Wit
17 jaar geleden
 
0 +1 -0 -1
Quote:
Die notatie van colspan is niet zo lekker <<2>>, kun je niet iets anders verzinnen?
Hier ben ik het helemaal mee eens.

Je zou dit op een eenvoudige manier kunnen oplossen door rijen (en zelfs cellen) als aparte objecten te beschouwen. Op die manier kun je elke rij (en cel) zijn eigen eigenschappen meegeven. Dat maakt je applicatie een stuk flexibeler en lost direct dit probleem op. De colspan wordt dan immers een eigenschap van een cel.
Joris van Rijn
Joris van Rijn
17 jaar geleden
 
0 +1 -0 -1
Quote:
Verder zou ik ook kijken naar Styles, die je ipv classes mee kunt geven. Niet zoveel extra moeite om te maken

Wat bedoel je precies met styles?

@Blanche; kan je een stukje voorbeeld geven ofzo iets? Ik snap niet echt wat je bedoeld, maar ik wil er wel even wat van afweten.
Joren de Wit
Joren de Wit
17 jaar geleden
 
0 +1 -0 -1
Ik denk dan aan zo'n opzet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
class Table {
    private $aRows;
    
    public function __construct() {
        
    }

    
    public function addRow(Row $oRow) {
        $this->aRows[] = $oRow;
    }
}


class Row {
    private $aCells;
    
    public function __construct() {
        
    }

    
    public function addCell(Cell $oCell) {
        $this->aCells[] = $oCell;
    }
}


class Cell {
    private $iColspan;
    private $sContent;
    
    public function __construct($content, $span = 2) {
        $this->sContent = $content;
        $this->iColspan = $span;
    }
}

?>

Zo beschouw je een tabel als je object bestaande uit rijen die op hun beurt weer uit cellen bestaan. Precies zoals een tabel opgebouwd wordt in de HTML structuur:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<table>
  <tr>
    <td>
    </td>
  </tr>
</table>


ps. Uiteraard is dit veel meer programmeerwerk om zoiets - ogenschijnlijk simpels - voor elkaar te krijgen, maar dit is wel echt OOP. Je zou je voor kunnen stellen dat je je Cell klasse op een later moment in een andere omgeving kunt gebruiken, los van deze Row en Tabel klasse.
Joris van Rijn
Joris van Rijn
17 jaar geleden
 
0 +1 -0 -1
Dat ken ik zegmaar nog niet :']
Kan je me een link sturen waar ik er meer over kan lezen?
Joren de Wit
Joren de Wit
17 jaar geleden
 
0 +1 -0 -1
http://www.phphulp.nl/php/tutorials/8/632/

En uiteraard google. Zoek dan bijvoorbeeld op 'php5 oop'. En neem dan echt de tutorials voor PHP5 aangezien de syntax met deze versie nogal veranderd (lees: verbeterd) is.
Nibulez
Nibulez
17 jaar geleden
 
0 +1 -0 -1
@blanche

Volgens die tutorial kan alles toch gewoon in de class 'table' worden gezet, Row en Cell zijn onderdelen van een table dus mogen daarbinnen staan.


17 jaar geleden
 
0 +1 -0 -1
Quote:
Nibulez schreef op 29.12.2009 18:41
@blanche

Volgens die tutorial kan alles toch gewoon in de class 'table' worden gezet, Row en Cell zijn onderdelen van een table dus mogen daarbinnen staan.

Zie dat stukje bij datum.
Daar staat geschreven dat je een dag, een maand en een jaar ook als objecten kan beschouwen. Alleen hoef je dat niet altijd te doen, als het je applicatie verbeterd zou je dat wel doen.
In dit geval zou ik zeker die andere objecten maken. Ze verbeteren je applicatie. Je kunt er dan veel mooie dingen mee doen. Een heeft bepaalde eigenschappen en een row ook. Denk er bijvoorbeeld aan dat een cell meerdere cellen kan bestrijken.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Joris van Rijn
Joris van Rijn
17 jaar geleden
 
0 +1 -0 -1
Er komt een dezer dagen nog wel een v3 uit. :p
Met verbeterde klassen.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. tabel-class-v2

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.