PHP/HTML/Table Utilities

Материал из Web эксперт
Перейти к: навигация, поиск

The Table and HTMLTable Classes

/*
Code Revised from 

Sam"s Teach Yourself Php, Mysql and Apache in 24 Hours 
(Sams Teach Yourself S.) (Paperback)
by Julie C. Meloni 
# Paperback: 616 pages
# Publisher: Sams (1 Jan 2004)
# Language English
# ISBN: 0672326205
*/

<html>
<head>
<title>testing objects</title>
</head>
<body>
<?php
class Table{
    var $table_array = array();
    var $headers = array();
    var $cols;
    function Table( $headers ){
        $this->headers = $headers;
        $this->cols = count ( $headers );
    }
    function addRow( $row ){
        if ( count ($row) != $this->cols )
            return false;
        array_push($this->table_array, $row);
        return true;
    }
    function addRowAssocArray( $row_assoc ) {
        if ( count ($row_assoc) != $this->cols )
            return false;
        $row = array();
        foreach ( $this->headers as $header ) {
            if ( ! isset( $row_assoc[$header] ))
                $row_assoc[$header] = " ";
            $row[] = $row_assoc[$header];
        }
        array_push($this->table_array, $row) ;
    }
    function output() {
         print "<pre>";
         foreach ( $this->headers as $header )
             print "<B>$header</B>  ";
         print "\n";
         foreach ( $this->table_array as $y ) {
             foreach ( $y as $xcell )
                 print "$xcell  ";
             print "\n";
         }
         print "</pre>";
     }
}
class HTMLTable extends Table{
     var $bgcolor;
     var $cellpadding = "2";
     function HTMLTable( $headers, $bg="#ffffff" ){
         Table::Table($headers);
         $this->bgcolor=$bg;
     }
     function setCellpadding( $padding ){
         $this->cellpadding = $padding;
     }
     function output(){
         print "<table cellpadding=\"$this->cellpadding\" border=1>";
         foreach ( $this->headers as $header )
             print "<td bgcolor=\"$this->bgcolor\"><b>$header</b></td>";
         foreach ( $this->table_array as $row=>$cells ) {
             print "<tr>";
             foreach ( $cells as $cell )
                 print "<td bgcolor=\"$this->bgcolor\">$cell</td>";
             print "</tr>";
         }
         print "</table>";
     }
}
$test = new HTMLTable( array("a","b","c"), "#00FF00");
$test->setCellpadding( 7 );
$test->addRow( array(1,2,3));
$test->addRow( array(4,5,6));
$test->addRowAssocArray( array ( b=>0, a=>6, c=>3 ));
$test->output();
?>
</body>
</html>



The Table Class

/*
Code Revised from 

Sam"s Teach Yourself Php, Mysql and Apache in 24 Hours 
(Sams Teach Yourself S.) (Paperback)
by Julie C. Meloni 
# Paperback: 616 pages
# Publisher: Sams (1 Jan 2004)
# Language English
# ISBN: 0672326205
*/

<html>
<head>
<title>The Table Class</title>
</head>
<body>
<?php
class Table{
    var $table_array = array();
    var $headers = array();
    var $cols;
    function Table( $headers ){
        $this->headers = $headers;
        $this->cols = count ( $headers );
    }
    function addRow( $row ){
        if ( count ($row) != $this->cols )
            return false;
        array_push($this->table_array, $row);
        return true;
    }
    function addRowAssocArray( $row_assoc ){
        $row = array();
        foreach ( $this->headers as $header ) {
            if ( ! isset( $row_assoc[$header] ))
                $row_assoc[$header] = "";
            $row[] = $row_assoc[$header];
        }
        array_push($this->table_array, $row);
        return true;
    }
    function output(){
        print "<pre>";
        foreach ( $this->headers as $header )
             print "<B>$header</B> ";
        print "\n";
        foreach ( $this->table_array as $y ) {
             foreach ( $y as $xcell )
                 print "$xcell ";
             print "\n";
        }
        print "</pre>";
    }
}
$test = new table( array("a","b","c") );
$test->addRow( array(1,2,3) );
$test->addRow( array(4,5,6) );
$test->addRowAssocArray( array ( b=>0, a=>6, c=>3 ) );
$test->output();
?>
</body>
</html>