This should have the variable naming problems fixed
<?php
class myTable {
var$numCols; var$headings; // array of the headings $object->headings = array('Business','Contact Name');
// table style - Setting font sizes decorations etc... var$headingStyle; // style for the heading row var$rowLightStyle; // style for the lighter colored rows var$rowDarkStyle; // style for the darker colored rows var$rowHighlightStyle; // style for the highlighted row
var$colStyle; // array of style tags for each column (not implemented)
// this sets up the default values // if all of your tables are going to look the same you can put all // of your style information in here and it will make using the table class easier $this->headingStyle = "font-weight: bold; background: #000099; color: #FFFFFF; font-weight: bold; font-size: 10pt;";
// set up the style of the table... only needed if you don't like the defaults // You could setup include files for each style of table you need and just include // the particular style you want here. $tb->numCols = 3; // Required $tb->tableWidth = "90%"; $tb->tablestyle = "background: #000000;"; $tb->rowLightStyle = "background: #FFFFFF; color: #000000; font-size: 12px;"; $tb->rowDarkStyle = "background: #EBEBEB; color: #000000; font-size: 12px;"; $tb->rowHighlightStyle = "background: #FFFF99; color: #000000; font-size: 12px;"; $tb->cellborder = ""; $tb->cellspacing = 1; $tb->cellpadding = 1; $tb->headings = array("Item","Category", "Quantity"); // Required
// I think the above method reads easier than the following esspecially if // you are using a lot of variables // $tb->addRow( array("20x20 Tent","Tents","5") );
Sorry, My variable naming was inconsistent so before I posted it I renamed all of the variables that had underscores and I didn't test it. Thanks for pointing these things out.
// I think the above method reads easier than the following esspecially if // you are using a lot of variables --PHP include('tab.php'); // $tb->addRow( array("20x20 Tent","Tents","5") );
<?php
class myTable {
var $numCols;
var $headings; // array of the headings $object->headings = array('Business','Contact Name');
// table style - Setting font sizes decorations etc...
var $headingStyle; // style for the heading row
var $rowLightStyle; // style for the lighter colored rows
var $rowDarkStyle; // style for the darker colored rows
var $rowHighlightStyle; // style for the highlighted row
var $colStyle; // array of style tags for each column (not implemented)
// basic table settings
var $cellpadding;
var $cellspacing;
var $tableWidth;
var $tablestyle;
// cell borders
var $cellborder; // another style tag for each cell
var $row; // array $row[row][column]
var $numRows; // row counter
// Constructor
function myTable(){
// this sets up the default values
// if all of your tables are going to look the same you can put all
// of your style information in here and it will make using the table class easier
$this->headingStyle = "font-weight: bold; background: #000099; color: #FFFFFF; font-weight: bold; font-size: 10pt;";
$this->rowLightStyle = "background: #FFFFFF; color: #000000; font-size: 10pt;";
$this->rowDarkStyle = "background: #DDDDDD; color: #000000; font-size: 10pt;";
$this->cellpadding = 3;
$this->cellspacing = 0;
$this->cellborder = "border: solid 1px #000000;";
$this->numRows = 0;
$this->numCols = 0;
}
function addRow($rowData){
for ( $i=0; $i<$this->numCols; $i++ ){
if ($rowData[$i])
$this->row[$this->numRows][$i] = $rowData[$i];
else
$this->row[$this->numRows][$i] = " ";
}
$this->numRows++;
}
function displayTable(){
echo "<style>\r\n";
echo ".row_dark { " . $this->rowDarkStyle . " }\r\n";
echo ".row_lite { " . $this->rowLightStyle . " }\r\n";
echo ".row_hilite { " . $this->rowHighlightStyle . " } \r\n";
echo "</style>\r\n";
echo "<table cellspacing=" . $this->cellspacing . " cellpadding=" . $this->cellpadding . " width=" . $this->tableWidth . " style=\"" . $this->tablestyle . "\">\r\n";
// The heading row
echo "<tr style=\"" . $this->headingStyle . "\">\r\n";
for ( $i=0; $i<$this->numCols; $i++ ){
echo "<td style=\"" . $this->cellborder . "\">" . $this->headings[$i] . "</td>";
}
echo "</tr>\r\n";
for ( $r=0; $r<$this->numRows; $r++ ){
if (fmod($r,2)) // Even rows are lite, odd rows are dark
$cRowClass = "row_dark";
else
$cRowClass = "row_lite";
echo "<tr class=\"" . $cRowClass . "\"";
if ($this->rowHighlightStyle)
echo " onmouseover=\"this.className='" . $cRowClass . " row_hilite';\" onmouseout=\"this.className='" . $cRowClass . "';\"";
echo ">\r\n";
for ( $c=0; $c<$this->numCols; $c++ ){
echo "<td style=\"" . $this->cellborder . "\">" . $this->row[$r][$c] . "</td>";
}
echo "\r\n</tr>\r\n";
}
echo "</table>";
}
}
// Usage Example
$tb = new myTable;
// set up the style of the table... only needed if you don't like the defaults
// You could setup include files for each style of table you need and just include
// the particular style you want here.
$tb->numCols = 3; // Required
$tb->tableWidth = "90%";
$tb->tablestyle = "background: #000000;";
$tb->rowLightStyle = "background: #FFFFFF; color: #000000; font-size: 12px;";
$tb->rowDarkStyle = "background: #EBEBEB; color: #000000; font-size: 12px;";
$tb->rowHighlightStyle = "background: #FFFF99; color: #000000; font-size: 12px;";
$tb->cellborder = "";
$tb->cellspacing = 1;
$tb->cellpadding = 1;
$tb->headings = array("Item","Category", "Quantity"); // Required
$newRow = array("20x20 Tent","Tents","5");
$tb->addRow($newRow);
$newRow = array("8ft Table", "Tables", "15");
$tb->addRow($newRow);
$newrow = array("Silver Chair", "Chairs", "300");
$tb->addRow($newRow);
// I think the above method reads easier than the following esspecially if
// you are using a lot of variables
// $tb->addRow( array("20x20 Tent","Tents","5") );
$tb->displayTable();
?>
The less manifest, but more damaging is in the output for CSS style...
replace "$this->rowLightStylestyle"
with correct "$this->rowLightStyle" in line 65
and
in line 85 it's somewhat weird "if ($this->row_hilite_style)"
so I put here "if ($this->rowHighlightStyle)" and it works fine by now.
There is also some superfluous steps, but Good snippet ! Thanks for that!
Pete
Peter Kytlica, web designer & modeling photographer
$newRow = array("20x20 Tent","Tents","5","333");
$tb->addRow($newRow);
$newRow = array("8ft Table", "Tables", "15");
$tb->addRow($newRow);
$newRow = array("Silver Chair", "Chairs", "300");
$tb->addRow($newRow);
$newRow = array("Silver Chair", "Chairs", "1300");
$tb->addRow($newRow);
TEXT HERE
// I think the above method reads easier than the following esspecially if
// you are using a lot of variables --PHP include('tab.php');
// $tb->addRow( array("20x20 Tent","Tents","5") );
$tb->displayTable();
?>