18/11/2009 20:37:00
Hallo.
Ik heb op mijn site een bericht systeem, zodat gebruikers met elkaar kunnen praten.
Maar nu wil ik op de pagina Postvak in alle berichten onder elkaar ziet.
Dat kan ik, maar nu wil ik dat ze omstebeurt 2 kleuren wisselen, zodat ze makkelijker uitelkaar te houden zijn.
Ik heb wel geprobeerd met even of oneven id, maar daar gaat niet omdat alle berichten van iedere gebruiker in dezelfde tabel komt.
Kan iemand mij hiermee helpen?
22/02/2025 17:55:37
18/11/2009 20:41:00
Een tellertje mee laten lopen en in de while controleren of het geval even of oneven is, aan de hand daarvan de kleur bepalen.
18/11/2009 20:43:00
waar een tellertje? In de tabel van de gebruikers, hoeveel berichten ze hebben ontvangen/verzonden ofzo?
18/11/2009 20:47:00
Bij het weergeven van de berichten, onder elkaar zet je aan het begin $count = 0;
Dan controleer je in de while zelf of de waarde positief of negatief, als de waarde positief is plaats je de ene kleur code, anders de andere. Aan het eind van while (nog wel er binnen) zet je $count++; om dat teller door te laten lopen.
18/11/2009 20:48:00
Voorbeeld:
Code (php)
1
2
3
4
5
6
<?php
for($i = 1; $i <= 10; $i++)
{
echo ($i & 1) ? '#000' : '#FFF';
}[/code]
18/11/2009 20:55:00
GaMer13: daar komt dit uit als echo #000#FFF#000#FFF#000#FFF#000#FFF#000#FFF1#000#FFF#000#FFF#000#FFF#000#FFF#000#FFF1#000#FFF#000#FFF#000#FFF#000#FFF#000#FFF1 dus dat betekend waarschijnlijk niet veel goeds!
Raymond: Als ik nu na de $count++ een echo $count; doe dan staat er 111
en de kleur van de berichten blijft de standaard kleur...
18/11/2009 21:00:00
Zucht, Jelmer. Dat moet je natuurlijk zelf wel omzetten in je eigen iets he:
Neem nou bijvoorbeeld zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
<table>
<?php
while($row = mysql_fetch_assoc($res))
{
echo '<tr class="' . ($row['id'] & 1) ? 'zwart' : 'wit' . '">';
echo '<td>' . $row['naam'] . '</td>';
echo '<td>' . $row['email'] . '</td>';
echo '</tr>';
}
?></table>
Dan krijg je om en om:
<tr class="zwart"></tr>
<tr class="wit"></tr>
<tr class="zwart"></tr>
En dat doe je dan met CSS stylen.
Gewijzigd op 01/01/1970 01:00:00 door
GaMer B
18/11/2009 21:11:00
ik heb (ook met mn css bestand) een tabelletje proberen te maken, maar nu staat er gewoon boven de tabel zwartzwartzwart terwijl er 3 rows zijn er dan zou er waarschijnlijk wel wat kleurverschil moeten zijn...
dit staat er nu...
(natuurlijk hierboven wel database selecteren enzo......)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
<?php
while($r=mysql_fetch_array($result))
{
echo '<tr class="' . ($r['id'] & 1) ? 'zwart' : 'wit' . '">';
echo '<td> '.$r['id'].'</td>';
echo '<td>' . $r['username'] . '</td>';
echo '<td>' . $r['date'] . '</td>';
echo '</tr>';
}
?>
18/11/2009 21:24:00
Moeten nog haakjes bij.
Zo dus.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
<?php
while($r=mysql_fetch_array($result))
{
echo '<tr class="' . (($r['id'] & 1) ? 'zwart' : 'wit') . '">';
echo '<td> '.$r['id'].'</td>';
echo '<td>' . $r['username'] . '</td>';
echo '<td>' . $r['date'] . '</td>';
echo '</tr>';
}
?>
18/11/2009 21:25:00
Was een paar haakjes vergeten. Het moet zijn:
Code (php)
1
echo '<tr class="' . (($r['id'] & 1) ? 'zwart' : 'wit') . '">';
18/11/2009 21:35:00
oke, het zwartzwartzwart gedoe is weg... nu alleen nog het probleem dat ik veel te weinig kennis heb van CSS, dus dat lukt niet echt.
Ik heb een heel klein standaard css bestandje, waar kleuren en lettertypen instaat voor links en gewone tekst, maar meer heb ik niet!
Kan iemand mij even dat stukje css geven/verbeteren..?
tr.zwart(background-color:#000000;}
tr.oranje(background-color:#FF8040;}
ik ga nu ook zeker proberen mijn css te verbeteren!
18/11/2009 21:47:00
Waar staat de operator & voor?

18/11/2009 21:53:00
Bitwise vergelijken.
Of die bit hetzelfde is.
18/11/2009 21:56:00
Overigens is dit, naar mijn mening, een uitzondering waarbij inline css mag worden gebruikt.
in plaats van constant de class te wisselen, kan je ook met inline css de background-color steeds wisselen.
18/11/2009 22:29:00
maar zoals ik al zei, ik weet niet veel van css dus kunnen jullie even voor deze code een klein voorbeeldje maken... gewoon dat ze allebij een andere kleur hebben.
Code (php)
1
2
3
4
5
6
7
<?php
echo '<tr class="' . (($r['id'] & 1) ? 'zwart' : 'oranje') . '">';
echo '<td> '.$r['id'].'</td>';
echo '<td>' . $r['username'] . '</td>';
echo '<td>' . $r['date'] . '</td>';
echo '</tr>';
?>
19/11/2009 10:19:00
maak je in je css 2 classes aan
Code (php)
1
2
3
4
5
6
.zwart {
background-color: #000000;
}
.oranje {
background-color: #FF803E;
}
Beheerder19/11/2009 10:36:00
Persoonlijk zou ik voor andere classnamen kiezen dan kleurnamen als 'zwart' en 'oranje'. Want wat als je de kleurstelling gaat veranderen. Dan moet je als je het netjes wilt houden ook je broncode aanpassen, omdat er anders verwarring kan optreden over welke kleur het nou werkelijk is.
Iets als row_even, of row_oneven lijkt me al een stuk duidelijker.
Gewijzigd op 01/01/1970 01:00:00 door
- Ariën -
19/11/2009 10:48:00
Ik zelf gebruik als classname zebra_even en zebra_odd. Gezien ik die regelmatig gebruik, en ik wel de zelfde kleuren wil over mijn gehele website.
