Oeh, dat is een bekende vraag. Mag ook gewoon met tabellen, het gaat er om dat je de juiste classe aan je regel (tr, of div, whatever) toewijst.
$i = 0;
while(fetching)
{
echo '<tr';
if($i % 2 == 0) echo ' class="oneven"';
echo '><td></td></tr>';
}
Link gekopieerd
@ Jelmer: je moet $i ophogen, anders werkt het niet.
De elegantste oplossing vind ik deze:
<style>
tr.bg0 {
background: #fff;
}
tr.bg1 {
background: #eee;
}
</style>
<?php
// rijen om en om kleuren
$i = 0;
while (fetch) {
$i ^= 1;
echo '<tr class="bg'.$i.'"></tr>';
}
?>
Link gekopieerd
@Jan: inderdaad, foutje, overgeslagen.
Link gekopieerd
Hee Jelmer, je hebt gewonnen!
3000+ posts :-)))
Link gekopieerd
Overigens heb ik nog een
leuk artikel over dit probleem gelezen net. Het kan ook anders, op deze manier:
1) zorg dat de hoogte van je tabelrijen vaststaat (bv 25px)
2) maak een plaatje van 50 pixels met de bovenste helft in de ene kleur en de onderste helft in de andere
3) gebruik dat plaatje als achtergrond voor je tabel
Link gekopieerd
$i ^= 1;
Dit heb ik nog nooit gezien, dit verhoogt ook met 1 veronderstel ik? (Geen tijd om te testen)
Waarom dan niet $i++; ? Is korter :)
Link gekopieerd
Hoi Rafael
De ^ operator is een XOR bit-operator.
Als $i 1 is, wordt hij 0
Als $i 0 is, wordt hij 1
Als je $i++ doet, moet je daarna nog checken of hij even of oneven is met $i % 2. Dus ^ is in dit geval korter :-)
Link gekopieerd
Heej die syntax had ik nog niet gezien :P.
maar na ff wat teste blijkt dat ^= het getal in de variabele steeds met de aangegeven hoeveelheid verhoogt, de volgende keer weer verlaagt, dan weer verhoogt:
check ut zelf:
<?php
$i = 0;
for($y=0;$y<6;$y++){
$i^= 1;
echo $i."\n";
} // Output:
// 1
// 0
// 1
// 0
// 1
// 0
$i = 4;
for($y=0;$y<6;$y++){
$i^= 3;
echo $i."\n";
} // Output:
// 7
// 4
// 7
// 4
// 7
// 4
$i = 2;
for($y=0;$y<6;$y++){
$i^= -3;
echo "// ".$i."\n";
} // Output:
// -1
// 2
// -1
// 2
// -1
// 2
?>
Link gekopieerd
Jan Koehoorn schreef op 19.12.2005 22:02
Hoi Rafael
De ^ operator is een XOR bit-operator.
Als $i 1 is, wordt hij 0
Als $i 0 is, wordt hij 1
Als je $i++ doet, moet je daarna nog checken of hij even of oneven is met $i % 2. Dus ^ is in dit geval korter :-)
Bedankt voor de uitleg, weer wat bijgeleerd, en dit kan best handig zijn :D
Link gekopieerd