PHPBuilder - PHP and Classes Page 5



RSS Twitter
Articles Application Architecture

PHP and Classes - Page 5

by: Rod Kreisler
|
July 30, 2000

Let's do the table body now:
<TR>
<?php

$Tbody
->TDOut("Kreisler");
$Tbody->TDOut("Rod");
$Tbody->TDOut("Cortlandt");
$Tbody->TDOut("New York");
$Tbody->TDOut("USA");
?>
</TR>
But this is still getting kind of lengthy. Couldn't we save some more steps? How about trying this:

<?php

function TROut($message) { /*And NO comments about fish, please! ;)   */

        
PRINT "<TR>\n";
        
$cells=explode("|",$message);
        
$iterations=count($cells);
        
$i=0;
        while (
$i<$iterations) {
                list(
$message,$span)=explode(":",$cells[$i]);
                if (
strlen($message)<1$message="&nbsp";
                if (
$span){
                        
$this->TDOut ($message,$span);
                }else{
                        
$this->TDOut ($message);
                }
                
$i++;
                }
        PRINT 
"</TR>\n";

}

?>
Wow! That's a little more complicated. Let's break it down:
  • Line 3 splits the message on pipes and stores the pieces in the array $cells.
  • Line 4 stores the number of items (number of cells) in $iterations.
  • Line 6 begins our loop to go through these cell items.
  • Line 7 splits the cell data at the colon and stores them into the variables $message and $span.
  • Line 8 checks to see if a message was included. If not then it sets message to the default.
  • Line 9 checks to see if there was a span listed (i.e. the cell data had a colon with something behind it.
    • if so, Line 10 calls TDOut with the message and the number of cells it spans.
    • if not, Line 12 calls TDOut with just the message (TDOut will set $colspan to the default 1).
Lastly, we close out the row.
What this means is we can pass a single string to TROut that will contain all the necessary information to print out the entire row as long as the string is in the format celldata[:colspan]|celldata[:colspan]|......celldata[:colspan].
So, instead of all the work we did before, the headers and body of the table could be called like this:
<TABLE>
<?php
$Theader
->TROut("Name:2|Address:3");
$Theader->TROut("First|Last|City|State/Province|Country");
$Tbody->TROut("Rod|Kreisler|Cortlandt|New York|USA");
?>
</TABLE>
Wow. That's a lot easier. But what if the data is in variables? Simply join the array:

<?php

$message
=join($arry,"|");
$Tbody->TROut($message);

?>

« Previous Page
1
|
2
|
3
|
4
|
5
|
6
Next Page »

Comment and Contribute

Your comment has been submitted and is pending approval.

Author:
Rod Kreisler

Comment:



Comment:

(Maximum characters: 1200). You have characters left.