afficher des titres de news avec le fond alterné

WRInaute discret
Bonjour

je cherche desesperement comment faire pour afficher des titres de news avec le fond alterné (comme sur la page d'accueil de webrankinfo)

merci
 
WRInaute accro
deux classes alternées tout simplement. ta liste de news est codé comment ? div ? li ? td ?
dans ta boucle, quelquechose du genre :

while...
{
if ($class=='classe1') $class='class2';
else $class='class1';
echo "<li class='$class'>tanews</li>"
}
 
WRInaute discret
Bonjour,

Il suffit d'affecter une couleur de fond aux lignes (ou record) paires et une autre au lignes impaires. Exemple avec couleurs définies dans un CSS. Vous semblez utiliser PHP donc...

Code:
for($i = 0; $i < $numeroDeLigne; $i++) {

   if($i % 2) { // Ligne paire ?

       echo "<tr class=\"couleur1\">\n";

   } else { // sinon 

       echo "<tr class=\"couleur2\">\n";

   }

Bien à vous,

Serge
 
WRInaute discret
j'ai ca :

Code:
  <?php do { ?>
                </div>
              <tr height="15">
                <td width="100"><div align="left"><a href="actualites.php" target="_self">le&nbsp;<?php echo $row_news['date']; ?></a></div></td>
                <td width="300"><div align="left"><a href="actualites.php" target="_self"><?php echo $row_news['titre']; ?></a></div></td>
              </tr>
            
              <div align="left">
                  <?php } while ($row_news = mysql_fetch_assoc($news)); ?>

je pense qu'il faudrait mettre le while sur le TR

Code:
        <?php do { ?>
                </div>
              <tr height="15"  <? { 
if ($class=='classe1') $class='class2'; 
else $class='class1'; 
echo "class='$class'" 
} ?>        >
                <td width="100"><div align="left"><a href="actualites.php" target="_self">le&nbsp;<?php echo $row_news['date']; ?></a></div></td>
                <td width="300"><div align="left"><a href="actualites.php" target="_self"><?php echo $row_news['titre']; ?></a></div></td>
              </tr>
            
              <div align="left">
                  <?php } while ($row_news = mysql_fetch_assoc($news)); ?>

et je definit "class1" et "class2" avec deux couleurs differentes?
 
WRInaute passionné
Oui, mais à la limite utilise la solution de srappaille plus propre.

Mais ça devrait marcher.

Par contre pourquoi faire un do while et pas un while? Si t'as pas de résultat ça risque de donner un résultat bizarre.
 
WRInaute discret
je ne suis pas codeur et malheureusement je ne sais pas ce que tout ca veux dire.

je veux bien faire ca :
Code:
while... 
{ 
if ($class=='classe1') $class='class2'; 
else $class='class1'; 
echo "<li class='$class'>tanews</li>" 
}

mais ou j'integre mon code? et qu'est ce que je met a la palace des 3 petits points?
 
WRInaute passionné
Code:
$i = 0;
while ($row_news = mysql_fetch_assoc($news))
{
  if($i % 2) 
  { 
    // Ligne paire ?
   $class = 'classe1';
   } else 
   { 
   // sinon
   $class = 'classe2';
   } 
  ?>        <tr height="15" class="<?php print $class; ?>">
                <td width="100"><div align="left"><a href="actualites.php" target="_self">le&nbsp;<?php echo $row_news['date']; ?></a></div></td>
                <td width="300"><div align="left"><a href="actualites.php" target="_self"><?php echo $row_news['titre']; ?></a></div></td>
              </tr> 
<?php
 $i++;
}
 
WRInaute accro
ta boucle d'affichage des actualités n'est pas implementée ?
quel est ton code à l heure actuelle poura fficher tes lignes
 
WRInaute passionné
Il l'a mis avant; mais c'est un do while, si y'a rien à afficher ça va quelque peu planter, ou faire un affichage moche plutôt.
 
WRInaute passionné
heuuu pourquoi un if avec deux classes ?

suffit d'avoir une couleur par defaut, et de la surcharger en cas de ligne paire par exemple

Code:
...
<tr height="15" class="defaultColor  <? if($i % 2) echo "EvenColor"?>">
...
 
WRInaute discret
merci pour vos aides
alladin , j'ai remplacé les defaukltcolor et evencolor par des codes hexadecimaux, ca ne marche pas.

Bacteries, j'ai mis ton code je pense que ca doit etre ca, mais ca ne marche pas. il doit y avoir un blocage avec mes classe1 et classe2.
Par contre ca m'affiche la date puis le titre sur 2 lignes! : http://www.grandsbleus.fr
et n'affiche plus le titre de la derniere news.
 
WRInaute passionné
J'ai bien le titre de la dernière news.

Pour l'affichage sur deux lignes bah rajoute déjà les balises <table> à ton code...

Avant la boucle tu mets : <table>, après : </table>
 
WRInaute passionné
cyrille17 a dit:
merci pour vos aides
alladin , j'ai remplacé les defaukltcolor et evencolor par des codes hexadecimaux, ca ne marche pas.

tu ne peut pas mettre un code hexa dans le nom d'une classe !
si tu veux faire ca passe plutot par style="background-color:#codehexa";

mais il est toujours conseillé d'évité au maximum d'écrire des styles en dur dans les balises.

Passe par des classes c'est plus propre
 
WRInaute discret
merci pour l'aide
ca marche bien
seulement c'est sur, ma derniere news ne s'affiche plus!
c'est toujours l'avant derniere qui apparait tout en haut.

c'est rageant je vais pas l'enlever maintenant!
 
WRInaute discret
tu ne sais pas a quoi cela est du?

Et si queqlu'un pourrait aussi, s'il a une idée, expliquer le fait que le site est "cassé en deux" sous firefox (que je croyais mieux et moins disposé aux bugs, alors que je vois que ce n'est que ca!)
idem avec http://www.danemarkculture.net
 
WRInaute passionné
C'est pas puisque ton code passe bien sous IE et mal sous Firefox que c'est la faute de Firefox... Car oui firefox et mieux que IE, FF suit les recommendations du W3C est accepte donc du code standard (et bien fait donc), alors qu'IE fait un peu à sa sauce; donc un code mal fait va aller sur IE mais pas forcément sous Firefox, et encore moins sur les autres navigateurs (ne parlant même pas des navigateurs pour les handicapés visuels).

Pour ta news qui n'apparait difficile de savoir sans avoir le code...
 
WRInaute discret
c'est quoi W3C?

mon code c'est bizarre maintenant il affiche pas l'avant dernier. ca faisait ca avant je crois ca viend pas de ton truc.
 
WRInaute passionné
W3C : c'est l'organisme chargé de rentre standard les différents documents pour le web (html, xhtml, css).

Normalement les programmes qui lisent du html, css, ...doivent suivre ces standard, pour éviter que les pages aient des affichages différents. IE ne le fait qu'a moitié, mais la nouvelle version devait améliorer ça sans toutefois être complétement compatible.
 
Discussions similaires
Haut