PRATIQUE PHP 
Alterner les couleurs d'un tableau
 
Rendre un tableau dynamique plus lisible ne nécessite qu'un simple opérateur modulo... (22/06/2004)
  Forum

Réagissez dans les forums de JDN Développeurs

Lors de l'affichage de données tabulaires de manière dynamique, il est facile d'améliorer la lisibilité du tableau créé en demandant à PHP d'alterner les couleurs une ligne sur deux.

On utilise pour cela l'opérateur % (appelé "modulo"), qui renvoi le reste d'une division :
5 / 2 = 2.5
5 % 2 = 1

Avec cet opérateur, on peut savoir si un chiffre est pair ou non (son reste est égal à 0) et donc, en utilisant une variable que l'on incrémente au fur et à mesure de la création du tableau, donner une couleur aux cases paires, et une autre... aux autres.

Le code
<?php
$gains = array(
  'Janvier' => 51651,
  'Février' => 651651,
  'Mars' => 651651,
  'Avril' => 65165,
  'Mai' => 919851,
  'Juin' => 12304,
  'Juillet' => 56518,
  'Août' => 7889,
  'Septembre' => 189121,
  'Octobre' => 15416,
  'Novembre' => 156515,
  'Décembre' => 65165
  );

$i = 0;
echo "<table border='1'>";
echo "<caption>Nos gains sur l'année</caption>";
echo "<tr bgcolor='#cccccc'><th>Mois</th><th align='right'>Gain</th></tr>";

foreach ($gains as $mois => $gain)
  {
  if ($i % 2 == 0)
    {
    echo "<tr bgcolor='#dddddd'><td>$mois</td><td align='right'>$gain</td></tr>";
    }
  else
    {
    echo "<tr bgcolor='#eeeeee'><td>$mois</td><td align='right'>$gain</td></tr>";
    }
  $i++;
  }
echo "</table>";
?>

on peut aussi simplifier la boucle foreach() , en utilisant l'opérateur ternaire ? :
foreach ($gains as $mois => $gain)
  {
  echo "<tr bgcolor='".( ($i++ % 2 == 0) ? '#dddddd' : '#eeeeee' )."'><td>$mois</td><td align='right'>$gain</td></tr>";
  $i++;
  }

(merci à nos lecteurs d'avoir insisté sur cette simplification)


Nos gains sur l'année
Mois Gain
Janvier 51651
Février 651651
Mars 651651
Avril 65165
Mai 919851
Juin 12304
Juillet 56518
Août 7889
Septembre 189121
Octobre 15416
Novembre 156515
Décembre 65165

 

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page