Aller au contenu

style liste php/mysql


william_dallas

Sujets conseillés

Bonjour à tous,

J'ai un script php qui récupère le contenu de plusieurs champs d'une table et qui affiche les résultats dans un tableau.

Je vous mets juste la fin du script puisque ça marche :

while ($row =mysql_fetch_array ($result))
{
?>

<table border="0" width="100%" align="center" cellspacing="1" cellpadding="5">
<tr>
<td width="5%" align="center">
</td>
<td width="5%" align="center">
</td>
<td width="15%" align="center">
<?php echo "$row[id_contact]"; ?>
</td>
<td width="15%" align="center">
<?php echo"$row[nom]"; ?>
</td>
<td width="20%" align="center">
<?php echo "$row[email]"; ?>
</td>
<td width="15%" align="center">
<?php echo "$row[gsm]"; ?>
</td>
<td width="15%" align="center">
<?php echo "$row[tel]"; ?>
</td>
<td></td>
</tr>
</table>
<?php
}

?>

Voilà et donc je souhaite savoir comment je peux faire pour changer le fond de chaque ligne de mon tableau qui affiche les données histoire que le résultat soit un peu plus stylée et lisible.

ex:

<tr class="fond1"><td>...</td></tr>
<tr class="fond2"><td>...</td></tr>
<tr class="fond1"><td>...</td></tr>
...

Merci pour votre aide!

Lien vers le commentaire
Partager sur d’autres sites

Salut,

si 2 couleurs alternées te suffisent ...

<?php
// Alterner les couleurs de ligne d'un tableau
function alterneCouleur($couleur1, $couleur2) {
static $couleur;
$couleur = ($couleur == $couleur1) ? $couleur2 : $couleur1;
return $couleur;
}
$couleur1 = '#cccccc';
$couleur2 = '#999999;

?>

et remplace ton <tr> dans la boucle par

<tr bgcolor="<?php echo alterneCouleur($couleur1, $couleur2); ?>">

voili voilou

++

Patrick

Lien vers le commentaire
Partager sur d’autres sites

Patrick, bgcolor :?::(

Bon, william_dallas, je ne vais pas donner une solution bien meilleure puisque la mienne ne marchera que dans 6 mois ou 1 an (sans blague).

C'est un simple code CSS:

tr:nth-child(even) {background-color: #f00;}

L'avantage de cette solution est qu'elle permet de ne pas toucher au code ni PHP ni HTML. Et qu'une simple ligne suffit à alterner les couleurs de fond.

L'inconvénient c'est que tous les navigateurs ne la prennent pas encore en compte. Seul Safari à ma connaissance. Mais Opera et Firefox devrait très prochainement prendre ça en compte, certainement dans une mise-à-jour prochaine

(d'où les 6 mois - 1 an).

Une solution hybride entre la mienne et celle de Patrick (que je trouve un peu cradouille à cause du bgcolor, désolé Patrick) serait de faire ceci:

<?php
// Alterner les classes
function alterneClass($class1, $class2) {
static $class;
$class = ($class == $class1) ? $class2 : $class1;
return $class;
}
$class1 = 'impair';
$class2 = 'pair;

?>

Ensuite de remplacer le <tr> du while par ceci

<tr class="<?php echo alterneClass($class1, $class2); ?>">

Et finalement d'écrire ceci dans ta feuille de style

tr.impair {background-color: #ccc}; tr.pair {background-color: #999;}

Lien vers le commentaire
Partager sur d’autres sites

Pas de souci Dudu, j'ai fait un copier-coller à partir de l'un de mes anciens sites que je savais utiliser ça.

Mais c'est vrai que le bgcolor n'est pas terrible terrible :thumbsdown:

++

Patrick

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...