On Tue, 2009-08-11 at 11:28 +0100, David Otton wrote:
> 2009/8/11 Daevid Vincent <[email protected]>:
>
> > NO! For the love of God and all that is holy, don't do that accumulator /
> > mod "hack".
> > That's sooooo 1980's. And why make the CPU do all that math for every row...
> >
> > Just do this. It's quick and simple:
> >
> > CSS:
> > .dataRow1 { background-color: #DFDFDF; }
> > .dataRow2 { background-color: #FFFFFF; }
> >
> > foreach ($foo_array as $foo) {
> > ?><tr class="<?= ($dr = !$dr) ? "dataRow1" : "dataRow2" ?>"><td><?= $foo
> > ?></td></tr><?php
> > }
>
> A change request just came in - the interaction designer wants every
> third line to have a grey background, instead of every second line.
>
> > No need to initialize $dr as by default PHP will make it a boolean "false",
> > then each itteration, it will toggle true/false and substitute the CSS class
>
> Um. No. Just no.
>
I tend to do something like this:
$count = 0;
foreach($foo_array as $foo)
{
$class = ($count % 3 == 0)?'class="thirdRow"':'';
print "<tr $class><td>$foo</td></tr>";
}
You only need to give one row the class, as you style up all the rows
and only change the row that needs to change.
Thanks,
Ash
http://www.ashleysheridan.co.uk
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php