Oneven regels andere kleur in tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rene Zwolsman

Rene Zwolsman

21/04/2007 20:25:00
Quote Anchor link
Met behulp van een for-lus maak ik een HTML-tabel. Dit doe ik met de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
echo "<table border=\"1\">\n";
echo "<tr bgcolor=\"#CCFFCC\"><td>Fruit</td></tr>\n";
$fruit = array(appel, peer, banaan, kiwi, sinsaasappel, perzik, mandarijn);
$fruit_num = count($fruit);
for ($i=0; $i<=$fruit_num; $i++){
    echo "<tr><td>$fruit[$i]</td></tr>\n";
}

echo "</table>";
?>


De 1e regel van de tabel krijgt handmatig de kleur #CCFFCC mee. Nu wil ik elke oneven regel ook deze kleur geven. Hoe doe ik dit?
 
PHP hulp

PHP hulp

24/12/2024 17:24:21
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 20:29:00
Quote Anchor link
GEFELICITEERD! U BENT DE MILJOENSTE BEZOEKER VAN PHPHULP DIE DIT VRAAGT!

Nee hoor, grapje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
echo "<table border=\"1\">\n";
echo "<tr bgcolor=\"#CCFFCC\"><td>Fruit</td></tr>\n";
$fruit = array(appel, peer, banaan, kiwi, sinsaasappel, perzik, mandarijn);
$fruit_num = count($fruit);
$flip = 0;
for ($i=0; $i<=$fruit_num; $i++){
    $flip ^= 1;
    echo "<tr class=\"bg" . $flip . "\"><td>$fruit[$i]</td></tr>\n";
}

echo "</table>";
?>


In je CSS:

.bg0 {
background: #eee;
}

.bg1 {
background: #fff;
}

Online voorbeeld: alternating rows
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Cees St

Cees St

21/04/2007 20:39:00
Quote Anchor link
Ik zou het wat anders doen, het is niet nodig om standaard HTML door PHP te laten doen.

<table>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$fruit
= array(appel, peer, banaan, kiwi, sinsaasappel, perzik, mandarijn);
$fruit_num = count($fruit);
for ($i=0; $i<=$fruit_num; $i++){
if (count(fruit)%2){
   //eerste regel = even
    echo "<tr><td>$fruit[$i]</td></tr>\n";
}
else {
    //andere regel = odd
    echo "<tr><td>$fruit[$i]</td></tr>\n";
}
}

?>

</table>


Nu kan je om en om wat anders tonen.

Groet Cees
 
Rene Zwolsman

Rene Zwolsman

21/04/2007 20:41:00
Quote Anchor link
Bedankt!. (en ik zal het dan wel aan de miljoen+1e bezoeker uitleggen :p)
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 20:46:00
Quote Anchor link
Precies, hahaha! Daar hou ik je aan ;-)
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 20:49:00
Quote Anchor link
Cees schreef op 21.04.2007 20:39:
Ik zou het wat anders doen, het is niet nodig om standaard HTML door PHP te laten doen.

Da's een mooi stukje code Cees. Wat doet het precies?
 
Rene Zwolsman

Rene Zwolsman

21/04/2007 21:39:00
Quote Anchor link
Bij mij werkt de code van Cees niet. Wat doet (count(fruit)%2) ?
 
Stefan van Iwaarden

Stefan van Iwaarden

21/04/2007 21:46:00
Quote Anchor link
@rene, count(fruit) telt het aantal waardes in de array fruit, maar dat moet volgens count($fruit) zijn.

%2 betekent modulus 2, dit betekent zoveel als, deel telkens door 2 en geef de restwaarde als er niet meer door 2 gedeeld kan worden terug.
 
Rene Zwolsman

Rene Zwolsman

21/04/2007 21:46:00
Quote Anchor link
Ik maak hem nu wat moeilijker...

Vanuit een database genereer ik een html-tabel. Ook daarvan zou ik de regels om en om een andere kleur willen geven...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$dateset
= mysql_query("SELECT DISTINCT Date FROM weerdata ORDER BY Date ASC", $db);
if ($dateset){
    while ($date_result = mysql_fetch_array($dateset)){
        if ($date_result[0] >= "2007-04-01" AND $date_result[0] <= "2007-04-31"){
        echo "<tr><td>" . $date_result[0] . "</td>";
        display_table_day($date_result[0]);
        }
    }
}

else {
    echo "$error";
}

?>
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 21:50:00
Quote Anchor link
Rene schreef op 21.04.2007 21:39:
Bij mij werkt de code van Cees niet. Wat doet (count(fruit)%2) ?

Je moet ook die van mij gebruiken ;-)
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 21:52:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$dateset
= mysql_query("SELECT DISTINCT Date FROM weerdata ORDER BY Date ASC", $db);
if ($dateset){
    $flip = 0;
    while ($date_result = mysql_fetch_array($dateset)){
        if ($date_result[0] >= "2007-04-01" AND $date_result[0] <= "2007-04-31"){
        $flip ^= 1;
        echo "<tr class=\"bg".$flip."\"><td>" . $date_result[0] . "</td>";
        display_table_day($date_result[0]);
        }
    }
}

else {
    echo "$error";
}

?>
 
Rene Zwolsman

Rene Zwolsman

21/04/2007 21:55:00
Quote Anchor link
@Jan: Die werkt inderdaad. Maar dat was eigenlijk een voorbeeldje voor hetgeen ik hem werkelijk nodig heb... Zie vorige post. Met de if-functie en de array uit de database lukt het me niet meer. :-(
Dan worden ze allemaal dezelfde kleur...
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 21:57:00
Quote Anchor link
En met het voorbeeld uit mijn laatste post?
 
Rene Zwolsman

Rene Zwolsman

21/04/2007 21:59:00
Quote Anchor link
Ik had het bijna zelf kunnen verzinnen... Hij doet het. Thanx!
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 22:09:00
Quote Anchor link
Okee, graag gedaan :-)
 
Dan Groot

Dan Groot

01/03/2011 13:16:13
Quote Anchor link
Als eerst, ik kon niks vinden over het posten in oude topics, dus ik ga er van uit dat het mag. Na het gebruiken van de zoekfunctie ben ik in deze topic gekomen. Nu wil ik zelf ook 2 verschillende kleuren gebruiken voor een tabel en heb het één en ander geprobeerd zoals hier staat uitgelegd maar krijg het niet voor elkaar, hier mijn code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
            $result
=mysql_query("select * from products");
            while($row=mysql_fetch_array($result)){
            $flip = 0;
            $flip ^= 1;
        ?>

            <tr class=\"bg".$flip."\"></tr>
            <td width="10%"><?=$row['picture']?></td>
            <td width="20%"><?=$row['name']?></td>
            <td width="20%"><?=$row['description']?></td>
            <td width="20%"><?=$row['price']?></td>
            <td width="20%"><input type="button" value="Add to Cart" onclick="addtocart(<?=$row['serial']?>)" /></td>
        </tr>
        <? } ?>

Hopelijk kan iemand mij vertellen wat ik fout doe?
 
- SanThe -

- SanThe -

01/03/2011 13:20:07
Quote Anchor link
http://phpwiki.santhe.nl/index.php/Records_Om_en_Om_kleuren


Je moet $flip = 0; natuurlijk wel vóór de while() zetten.
Gewijzigd op 01/03/2011 13:21:53 door - SanThe -
 
Kris Peeters

Kris Peeters

01/03/2011 13:30:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
...
for($i=0; $row=mysql_fetch_array($result); $i++){
  $class = ($i%2==0 ? 'green' : 'blue' );
  ...
}

?>
Gewijzigd op 01/03/2011 13:31:11 door Kris Peeters
 
Dan Groot

Dan Groot

01/03/2011 14:01:40
Quote Anchor link
opgelost met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <?
            $result
=mysql_query("select * from products");
            for($i=0; $row=mysql_fetch_array($result); $i++){
            $kleur="#fff";
            if ($i &1){ $kleur = "#e7e6e2"; }
        ?>
    
            
            <tr bgcolor=<?php echo $kleur; ?>>
            <td width="10%"><?=$row['picture']?></td>
            <td width="20%"><?=$row['name']?></td>
            <td width="20%"><?=$row['description']?></td>
            <td width="20%"><?=$row['price']?></td>
            <td width="20%"><?=$row['price']?></td>
            <td width="20%"><input type="button" value="Add to Cart" onclick="addtocart(<?=$row['serial']?>)" /></td>
        </tr>
        <? } ?>


Hartelijk dank
 
TJVB tvb

TJVB tvb

01/03/2011 15:33:35
Quote Anchor link
Nu nog even foutafhandeling bij je query, en shorttags eruit halen (dus geen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$row['name']?>
maar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row['name']; ?>

En ook geen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? ?>
maar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ?>
)
En je code is helemaal af/
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.