Background color van 1 record wijzigen
http://www.wesleybekaert.be/nieuwdamberd/stand.php haal ik een klassement op uit mijn database.
Ik zou de record met onze ploeg (FC Damberd Bavikhove) in een andere backgroundcolor willen steken. Zodat de bezoeker direct ziet op welke plaats we staan.
Hoe codeer ik dit?
Dank bij voorbaat
Op deze pagina: Ik zou de record met onze ploeg (FC Damberd Bavikhove) in een andere backgroundcolor willen steken. Zodat de bezoeker direct ziet op welke plaats we staan.
Hoe codeer ik dit?
Dank bij voorbaat
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// kleur die voor als standaard word gebruik
$standaard_bgcolor = '#666666';
// afwijkende kleur voor FC Damberd Bavikhove
$highlight_bgcolor = '#eeeeee';
// in je pagina zal een foreach loop zitten die alle rijen doorloopt.
foreach {$rijen as $rij}
{
$bgcolor = ($rij['clubnaam'] == 'FC Damberd Bavikhove') ? $highlight_bgcolor : $standaard_bgcolor ;
// code die tabel opbouwt
....
echo '<tr bgcolor="'. $bgcolor .'">';
// code die tabel opbouwt
....
}
?>
// kleur die voor als standaard word gebruik
$standaard_bgcolor = '#666666';
// afwijkende kleur voor FC Damberd Bavikhove
$highlight_bgcolor = '#eeeeee';
// in je pagina zal een foreach loop zitten die alle rijen doorloopt.
foreach {$rijen as $rij}
{
$bgcolor = ($rij['clubnaam'] == 'FC Damberd Bavikhove') ? $highlight_bgcolor : $standaard_bgcolor ;
// code die tabel opbouwt
....
echo '<tr bgcolor="'. $bgcolor .'">';
// code die tabel opbouwt
....
}
?>
Code (php)
Dit is puur een voorbeeldje, je moet het zelf aanpassen aan je eigen code.
Wat je doet is, je kijkt of de naam van het team gelijk is aan jouw eigen team. Zo ja, dan voeg je een id toe. Via css kun je dan de juiste background-color toevoegen.
Duidelijk genoeg?
Toevoeging op 14/11/2012 14:38:43:
Oh, Erwin had ook al een oplossing gepost.
Ik zou wel kiezen voor een id en niet voor bgcolor (zoals in het voorbeeld van Erwin) omdat je html en opmaak zoveel mogelijk gescheiden moet houden.
Dan zou ik van jou regel 2 dit maken.
Code (php)
1
2
3
2
3
<?php
$id = $row['team'] == 'FC Damberd Bavikhove' ? ' id="our_team"' : ' id="other_teams"';
?>
$id = $row['team'] == 'FC Damberd Bavikhove' ? ' id="our_team"' : ' id="other_teams"';
?>
Anders krijg je namelijk dat alle andere weer geen id krijgen, endus geen opmaak hebben.
Doe de groeten aan Gerrit Callewaert.
Dat is niet nodig. Je hoeft niet iedere <tr> een eigen opmaak te geven. Dit doe je overkoepelend.
Je geeft dus alle <tr>'s dezelfde background-color, behalve die met het id "our_team".
Daarnaast is wat jij doet niet goed. Op jouw manier zouden alle <tr>'s (met uitzondering die met id "our_team") precies hetzelde id hebben, terwijl een id uniek moet zijn en dus maar 1x op een pagina mag voorkomen.
Mijn oplossing klopte dus gewoon.
Gewijzigd op 14/11/2012 15:24:50 door Ozzie PHP
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$SQL="SELECT * FROM stand ORDER BY punten DESC , gewonnen DESC , doelpuntensaldo DESC;";
$Result = mysql_query($SQL);
$teller = 1;
while($row = mysql_fetch_array($Result))
{
echo "<tr bgcolor=\"#999999\">";
echo "<td bgcolor=\"#999999\">$teller.</td>";
echo "<td bgcolor=\"#999999\"><p align=\"left\" class=\"style3\">" . $row["ploeg"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["matchen"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["gewonnen"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["gelijk"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["verloren"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpunten voor"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpunten tegen"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpuntensaldo"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["punten"] . "</p></td>";
echo "</tr>";
$teller += 1;
}
?>
$SQL="SELECT * FROM stand ORDER BY punten DESC , gewonnen DESC , doelpuntensaldo DESC;";
$Result = mysql_query($SQL);
$teller = 1;
while($row = mysql_fetch_array($Result))
{
echo "<tr bgcolor=\"#999999\">";
echo "<td bgcolor=\"#999999\">$teller.</td>";
echo "<td bgcolor=\"#999999\"><p align=\"left\" class=\"style3\">" . $row["ploeg"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["matchen"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["gewonnen"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["gelijk"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["verloren"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpunten voor"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpunten tegen"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpuntensaldo"] . "</p></td>";
echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["punten"] . "</p></td>";
echo "</tr>";
$teller += 1;
}
?>
Gelieve eens te kijken hoe ik dit kan integreren?
Het antwoord heb ik hierboven al gegeven!
Code (php)
1
2
3
2
3
<?php
$id = $row['team'] == 'FC Damberd Bavikhove' ? ' class="our_team"' : ' class="other_teams"';
?>
$id = $row['team'] == 'FC Damberd Bavikhove' ? ' class="our_team"' : ' class="other_teams"';
?>
gebruik class ipv van id. De conventie is id moet uniek zijn, class mag vaker voorkomen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
// ik zou in je css het volgende opnemen:
// .style3 td {
// background-color: #999999; {of de gewenste achtergrond kleur voor andere clubs}
// text-align:center;
// }
// .onze_club td {
// background-color: #666666; {of de gewenste achtergrond kleur voor onze club}
// }
// td.ploeg {
// text-align:left;
// }
$SQL="SELECT * FROM stand ORDER BY punten DESC , gewonnen DESC , doelpuntensaldo DESC;";
$Result = mysql_query($SQL);
$teller = 1;
while($row = mysql_fetch_array($Result))
{
$class = ($row['ploeg'] == 'FC Damberd Bavikhove') ? 'onze_club' : 'style3' ;
echo '<tr class="' . $class . '">';
echo '<td>' . $teller . '.</td>';
echo '<td class="ploeg"><p>' . $row["ploeg"] . '</p></td>';
echo '<td><p>' . $row['matchen'] . '</p></td>';
echo '<td><p>' . $row['gewonnen'] . '</p></td>';
echo '<td><p>' . $row['gelijk'] . '</p></td>';
echo '<td><p>' . $row['verloren'] . '</p></td>';
echo '<td><p>' . $row['doelpunten voor'] . '</p></td>';
echo '<td><p>' . $row['doelpunten tegen'] . '</p></td>';
echo '<td><p>' . $row['doelpuntensaldo'] . '</p></td>';
echo '<td><p>' . $row['punten'] . '</p></td>';
echo '</tr>';
$teller++;
}
?>
// ik zou in je css het volgende opnemen:
// .style3 td {
// background-color: #999999; {of de gewenste achtergrond kleur voor andere clubs}
// text-align:center;
// }
// .onze_club td {
// background-color: #666666; {of de gewenste achtergrond kleur voor onze club}
// }
// td.ploeg {
// text-align:left;
// }
$SQL="SELECT * FROM stand ORDER BY punten DESC , gewonnen DESC , doelpuntensaldo DESC;";
$Result = mysql_query($SQL);
$teller = 1;
while($row = mysql_fetch_array($Result))
{
$class = ($row['ploeg'] == 'FC Damberd Bavikhove') ? 'onze_club' : 'style3' ;
echo '<tr class="' . $class . '">';
echo '<td>' . $teller . '.</td>';
echo '<td class="ploeg"><p>' . $row["ploeg"] . '</p></td>';
echo '<td><p>' . $row['matchen'] . '</p></td>';
echo '<td><p>' . $row['gewonnen'] . '</p></td>';
echo '<td><p>' . $row['gelijk'] . '</p></td>';
echo '<td><p>' . $row['verloren'] . '</p></td>';
echo '<td><p>' . $row['doelpunten voor'] . '</p></td>';
echo '<td><p>' . $row['doelpunten tegen'] . '</p></td>';
echo '<td><p>' . $row['doelpuntensaldo'] . '</p></td>';
echo '<td><p>' . $row['punten'] . '</p></td>';
echo '</tr>';
$teller++;
}
?>
Groet,
Erwin van Hoof
SiteOn
Gewijzigd op 14/11/2012 23:34:06 door Erwin van Hoof
Ozzie PHP op 14/11/2012 15:23:55:
@Chris:
Dat is niet nodig. Je hoeft niet iedere <tr> een eigen opmaak te geven. Dit doe je overkoepelend.
Je geeft dus alle <tr>'s dezelfde background-color, behalve die met het id "our_team".
Daarnaast is wat jij doet niet goed. Op jouw manier zouden alle <tr>'s (met uitzondering die met id "our_team") precies hetzelde id hebben, terwijl een id uniek moet zijn en dus maar 1x op een pagina mag voorkomen.
Mijn oplossing klopte dus gewoon.
Dat is niet nodig. Je hoeft niet iedere <tr> een eigen opmaak te geven. Dit doe je overkoepelend.
Je geeft dus alle <tr>'s dezelfde background-color, behalve die met het id "our_team".
Daarnaast is wat jij doet niet goed. Op jouw manier zouden alle <tr>'s (met uitzondering die met id "our_team") precies hetzelde id hebben, terwijl een id uniek moet zijn en dus maar 1x op een pagina mag voorkomen.
Mijn oplossing klopte dus gewoon.
Dat is natuurlijk niet waar, je kunt 100x hetzelfde div id/ tr id gebruiken voor de opmaak. Hoe kom e erbij dat dit id uniek moet zijn?
Een id moet uniek zijn.
Ja, je kunt 100x hetzelfde id gebruiken op een pagina, maar dat is absoluut niet de bedoeling! De meeste browsers zullen deze fout wel pikken, maar als je javascript gaat gebruiken dan gaat het mis. Een (uniek) id mag maar 1x op een pagina voorkomen. Je mag uiteraard wel meerdere (verschillende) id's op een pagina gebruiken.
Stel je wilt een element met id "test" via javascript aanspreken en er staan meerdere elementen op die pagina die de id "test" hebben. Hoe weet je dan wat de juiste is? Dat is dus vragen om problemen.
Dus nogmaals. Iedere id op een pagina moet uniek zijn. Wil je toch meerdere elementen dezelfde vormgeving geven, dan kun je daar classes voor gebruiken. Classes mogen wel meerdere keren op een pagina voorkomen.
(Daarnaast is de manier waarop de topic starter zijn tabel vormgeeft nietbepaald goed te noemen.)
Ok, is gelukt. Bedankt aan iedereen. Vooral aan Erwin, jou hulp was de beste. FC Damberd zal u eeuwig dankbaar zijn. :-p