Scripts

Tabel Class

Met deze class kan je heel simpel een tabel aanmaken. De class rekent zelf het aantal rijen en kolommen uit. Als er in een rij meer kolommen staan dan in een andere word de rij met de minder kolommen automatisch aangevuld. Gebruik: Eerst kan je de headers zetten, dus de 's van de tabel. Dit is niet verplicht. Daarna moet jij rijen toevoegen, dus de 's van de tabel. Dit is wel verplicht. Hier beneden staat ook nog een voorbeeld. Handige extra: De output tabel wordt netjes met tabs en enters weergegeven. Edit: - Inplaats van telkens een array opgeven kun je nu gewoon argumenten op geven. - Geleerd dat er geen echo's in een array horen :'] Ze eruit gehaald.

tabel-class
[code]
<?php
//voorbeeld
	require("class.tabel.php");
	
	$tabel = new Tabel('test');
	
	$tabel->setHead('Col 1','Col 2','Col 3');
	$tabel->addRow('Rij 1, Col 1','Rij 1, Col 2');
	$tabel->addRow('Rij 2, Col 1','','Rij 2, Col 3');
	
	echo $tabel->display();
?>
[/code]

[b]Class:[/b]
[code]
<?php
    class Tabel{
        private $id;
        public $aantal_rows = 0;
        public $aantal_cols = 1;
        public $aantal_cels = 0;
        
        public $heading = array();
        public $rows = array();
        
        public function __construct($id){
            $this->id = $id;
        }
        
        public function setHead($cells){
            $cells = func_get_args();
            if(is_array($cells)){
                $this->heading = $cells;
                
                $aantal = count($cells);
                if($aantal > $this->aantal_cols){
                    $this->aantal_cols = $aantal;
                }
            }else{
                $this->heading = array($cells);
            }
            
            $this->aantal_cels = $this->aantal_rows*$this->aantal_cols;
        }
        
        public function addRow($cells){
            $cells = func_get_args();
            if(is_array($cells)){
                $aantal = count($cells);
                if($aantal > $this->aantal_cols){
                    $this->aantal_cols = $aantal;
                }
                
                $this->rows[] = $cells;
            }else{
                $this->rows[] = array($cells);
            }
            
            $this->aantal_rows++;
            $this->aantal_cels = $this->aantal_rows*$this->aantal_cols;
        }
        
        public function display(){
			$return = '';
			
            if(!empty($this->aantal_rows)){
                $return .= "<table id=\"".$this->id."\" border=\"1\" class=\"table\">\n\n";
                    if(!empty($this->heading)){
                        $return .= "\t<tr>\n";
                            for($i=0;$i<$this->aantal_cols;$i++){
                                if(isset($this->heading[$i]) AND $this->heading[$i] != null AND $this->heading[$i] != ''){
                                    $return .= "\t\t<th>".$this->heading[$i]."</th>\n";
                                }else{
                                    $return .= "\t\t<th>&nbsp;</th>";
                                }
                            }
                        $return .= "\n\t</tr>\n\n";
                    }
                    
                    for($a=0;$a<$this->aantal_rows;$a++){
                        $return .= "\t<tr>\n";
                            for($b=0;$b<$this->aantal_cols;$b++){
                                if(isset($this->rows[$a][$b]) AND $this->rows[$a][$b] != null AND $this->rows[$a][$b] != ''){
                                    $return .= "\t\t<td>".$this->rows[$a][$b]."</td>\n";
                                }else{
                                    $return .= "\t\t<td>&nbsp;</td>\n";
                                }
                            }
                        $return .= "\t</tr>\n\n";
                    }
                $return .= '</table>';
            }else{
                $return .= 'Geen geldig aantal rijen';
            }
			
			return $return;
        }
    }
?>
[/code]

Reacties

0
Nog geen reacties.