Alterner couleur lignes

kabeha

Membre expert
Club iGen
13 Mai 2002
1 323
54
61
Bourg en Bresse
Je n'arrive pas à trouver comment on fait alterner la couleur des lignes d'un tableau dynamique.

J'ai bien trouvé des sripts faisant intervenir modulo2, mais aucun ne dit où et comment les insérer : dans mon tableau ? dans la balise <tr> ?

:rose:

Un autre petit problème :

J'ai un tableau disons "Liste articles" qui m'affiche certaines données de la table correspondante.

J'insère un bouton dans la dernière colonne du tableau pour afficher la fiche complète de l'article, donc avec un formulaire dans le dernier <td>, un champ caché qui me récupère l'id du produit, et un bouton submit.

Pas de pb sauf que les lignes du tableau sont maintenant 2 fois plus hautes, quelques soient les dimensions que je fixe.C'est sûrement du à l'objet <form> ?

re-:rose:
 
pour les couleurs j'ai ça, enfin y d'autre façon mais comme ça,
ça devrait marcher...

dans ton index.php:
tu définies ta variables
$couleur = array("pair", "impair");

et dans la fonction d'affichage de ton php un truc dans le genre
function afficheHtml($coul) {
$i = 0;
//initialiser la div
$chaine="<div id=\"resultats\">";
//ajouter une ligne pour chaque notice
foreach($this->liste as $e) {
$chaine .= $e->uneLigne($coul[$i++%2]);
}
//Fermer la div
$chaine .= "</div>";

return $chaine;
}// fin de la fonction afficheHtml()

et puis dans ton html: <div class="{$couleur}">
et dans ton css, tu choisies tes couleurs...
pour .pair {} et .impair {}
 
Merci,

Pour les couleurs j'ai utiliser une autre solution :

//<?php $i=0;
do {
$i++ ?>
<tr bgcolor="<?php if($i % 2==0)
{
echo "#FFE7E7";
}
else
{
echo "#E3E2EF";
}
?>">

Par contre pour le décalage (voir capture ci-jointe), alors que dans IE et Camino c'est bien aligné sur une seule ligne, dans FireFox, Opera et Safari ça décale.
Voir la pièce jointe 10544
le code de mon td :
//le bouton + sert à afficher le détail de l'article et le bouton x à le supprimer
<td width="70"><div align="justify"><form name="ficheart" method="post" action="ficheart.php"><input type="hidden" name="numart" value=<?php echo $row_listeart['num_ar']; ?> />
<input name='Submit' type='image' onclick='this.submit();' value='Submit' src='../images/boutediter.gif' align="left"/></form>
<a href = "listeart.php?num_artURL= <? echo $row_listeart['num_ar']; ?>"><img src='../images/boutpoub.gif' border="0"></img></a>
</div></td>
 
Pour ton décalage autour de tes deux boutons, c'est certainement, comme tu le dis, dû à la balise <form> et/ou <input>.

Une solution serait peut-être de réduire les marges et remplissages à 0 autour de ces éléments, avec une règle CSS du genre :
Bloc de code:
form, input {
   margin: 0; /* pour enlever toutes les marges */
   padding: 0; /* pour enlever tous les remplissages */
}