2015-10-13 1 views
1

J'utilise ce code pour créer une table HTMLPHP: Mettez en surbrillance chaque seconde ligne de la table

for ($x = 0; $x <= $requiredRows; $x++) {  
    echo "<tr>"; 
    echo "<td>"; 
    echo someArrayStuff($x); 
    echo "</td>"; 

    echo "<td>"; 
    echo $someArrayStuff[$x][arrayinfos]; 
    echo "</td>"; 

    echo "<td>"; 
    echo $someArrayStuff[$x][arrayinfos]; 
    echo "</td>"; 
    echo "</tr>"; 
} 

Maintenant, je veux mettre en évidence toutes les deux rangées avec une couleur d'arrière-plan, comment puis-je faire avec PHP? Je ne veux pas le définir dans le fichier CSS.


Merci pour votre aide, maintenant il fonctionne avec ce code:

if($x%2 == 0) { echo "<tr bgcolor='#FFFFF'>"; } else { echo "<tr bgcolor='#FFFFF'>"; } 
+1

utilisation '$ x% 2 == logique 0' et définir le style css en ligne – akashBhardwaj

+0

cela peut se faire facilement avec jQuery si vous voulez aller dans cette voie; c'est une option. –

+1

Je comprends que vous avez vos raisons pour ne pas inclure de style dans le CSS, mais le style via le balisage est considéré comme une mauvaise pratique. –

Répondre

4
if($x%2 == 0) { 
    echo '<tr class="bg-highlight">'; 
} else { 
    echo "<tr>"; 
} 

et définissent une classe CSS:

.bg-highlight { 
    background-color: red; 
} 
+0

Fonctionne simplement génial. Comme la solution - merci! – coder

+0

Si vous ne voulez pas définir une classe CSS, vous pouvez simplement utiliser: if ($ x% 2 == 0) {echo ""; } else {echo ""; } – coder

+0

Veuillez noter que l'attribut 'bg-color' n'est plus valide en HTML5 http://www.w3.org/TR/html-markup/tr.html – dbarthel

0

Vous pouvez utiliser mod. $ x% 2 va vérifier si c'est une ligne paire. qui sera la ligne alternée. Si elle est trouvée comme ligne régulière, une couleur de fond différente est donnée.

for ($x = 0; $x <= $requiredRows; $x++) { 
    if($x%2 == 0) { //even 
    echo "<tr style="background-color: #FF0000">"; 
    } else { // odd 
    echo "<tr>"; 
    } 

    echo "<td>"; 
    echo someArrayStuff($x); 
    echo "</td>"; 

    echo "<td>"; 
    echo $someArrayStuff[$x][arrayinfos]; 
    echo "</td>"; 

    echo "<td>"; 
    echo $someArrayStuff[$x][arrayinfos]; 
    echo "</td>"; 
    echo "</tr>"; 
} 
1

Vous pouvez simplement créer une classe dynamique qui changera selon votre boucle

$class = ($x%2 == 0) ? "highlight" : ""; 
echo "<tr class='$class'>"; 

Il suffit de créer une classe nommée

.highlight{ 
    background-color: grey; 
} 
1

Ou vous pouvez simplement utiliser ce code dans css pour lignes impaires ou paires de la table.

div:nth-child(even) 
{ 
    background-color: yellow; 
} 
0
for ($x = 0; $x <= $requiredRows; $x++) {  
    echo "<tr"; 
    if ($x % 2 === 1) {echo " style=\"background-color: yourFavoriteColor;\"";} 
    echo ">"; 
       .................. 
+0

Veuillez toujours expliquer votre code –