Avatar billede kattendk Nybegynder
23. januar 2008 - 17:28 Der er 19 kommentarer og
1 løsning

Farve hver anden tabel i php

Hejsa jeg søger et script, som farver hver anden grå og ellers bare hvid.

Jeg har det her, jeg gerne vil have det flettet ind i:
echo"<body bgcolor=#F9F9F9>
<table width=51% border=1>
  <tr>
<td width=180><span style='font-size:13px;font-family:sans-serif;color:#FF0000;font-weight:bold;'>#$r[id].</span></font><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'> $r[navn]</td>
<td width='53'>$r[antal]</td>
<td width='218'>$r[ip]</td></span>";
}
echo"<tr>
  <td colspan=3 align=center>Forrige side og n&aelig;ste side .. <a href='123'>123</a>
</table>
<div style='float:left;'><a href=index.php#>Admin</a></div>
</body></html>";

En som gider lave det, på forhånd tak!
Avatar billede nielle Nybegynder
23. januar 2008 - 18:47 #1
Du må have lidt mere kod - f.eks. den den hvor at $r[] kommer fra? Og der er vel en loop som løber igennem alle værdierne.
Avatar billede kjeldsted Novice
23. januar 2008 - 18:49 #2
Dog er jeg ikke den største php nørd, men følgende skulle virke. Jeg har også rette lidt på dine 'span' tags da disse ikke var helt korrekte og kunne medføre fejl i browseren. Men prøv dette, det burde virke:

//-----------Herfra
$bg_color="#999999";
echo "<body bgcolor=#F9F9F9>
<table width=51% border=1>
  <tr>
<td style='font-size:13px;font-family:sans-serif;color:#FF0000;font-weight:bold;' width=180>#".$r[id].".</font><span style='background-color:".$bg_color.";font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'>".$r[navn]."</span></td>
<td style='background-color:".$bg_color.";font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;' width='53'>".$r[antal]."</td>
<td style='background-color:".$bg_color.";font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;' width='218'>".$r[ip]."</td>
<tr>
  <td colspan=3 align=center>Forrige side og n&aelig;ste side .. <a href='123'>123</a>
</table>
<div style='float:left;'><a href=index.php#>Admin</a></div>
</body></html>";
if($bg_color=="#999999"){$bg_color="#FFFFFF";}
elseif($bg_color=="#FFFFFF"){$bg_color="#999999";}
else $bg_color="#FFFFFF";
//----------Og hertil
Avatar billede zynzz Praktikant
23. januar 2008 - 20:22 #3
Sådan ville jeg nok løse den:

$i = 0;
while(her){
$farve = ($i%2) ? "#ffffff" : "#C0C0C0" ;

echo "<tr>";
echo "<td style='background-color: ".$farve.";'><td>";
echo "</tr>";
$i++;
}
Avatar billede nielle Nybegynder
23. januar 2008 - 20:29 #4
... eller helt uden tæller:

while(her){
$farve = ($farve == "#C0C0C0") ? "#ffffff" : "#C0C0C0";

echo "<tr style='background-color: $farve;'>";
echo "<td> ... <td>";
echo "<td> ... <td>";
echo "</tr>";
}
Avatar billede bobslaede Nybegynder
24. januar 2008 - 09:51 #5
nielle, så skal du også starte den et sted, med at definere en af farverne før lykken.
Avatar billede nielle Nybegynder
24. januar 2008 - 10:14 #6
Nej - hvis der ikke er sat en farve, bliver den første gang sat til "#C0C0C0".
Avatar billede bobslaede Nybegynder
24. januar 2008 - 10:28 #7
Suk... Undskyld... Klokken er ikke så mange ;)
Avatar billede Slettet bruger
25. januar 2008 - 00:43 #8
Du kan lave en function:


function ChangeColor($i) {
$colors = array("#FFFFFF", "#FF00FF");
  return $colors[($i%2)];
}


Så kan du i din while eller for-løkke lave ex.

for($i=0; $i<10; $i++) {
  echo ChangeColor($i)."<br />";
}
Avatar billede kattendk Nybegynder
25. januar 2008 - 11:48 #9
Jeg siger tak!

Hvis folk vil lægge svar?
Avatar billede Slettet bruger
25. januar 2008 - 12:17 #10
Ved ikke om du bruger mit, men lægger et svar alligevel.
Avatar billede kattendk Nybegynder
25. januar 2008 - 12:18 #11
for($i=0; $i<10 $i++) {
while($r=mysql_fetch_array($res)) {
$total = $r[antal];
$sumTotal += $total;
echo"<table width='500' border='0'>
  <tr>
    <td width='156' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'>$r[navn]</span></td>
    <td width='101' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'>". fix_tlfnr("$r[nummer]") ."</span></td>
    <td width='177' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'>$r[by]</span></td>
    <td width='38' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'><div align='right'>$r[antal]</div></span></td>
  </tr>
</table>
</body>
</html>";
}
}

---

Hvorfor virker den ikke? :S har selvfølgelig smidt function op
Avatar billede Slettet bruger
25. januar 2008 - 13:02 #12
Du skal fjerne
for($i=0; $i<10 $i++) {

&

} (en af dem)

LAver et nyt indlæg med et svar der virker.
Avatar billede Slettet bruger
25. januar 2008 - 13:03 #13
$i = 0; //her definere vi $i
while($r=mysql_fetch_array($res)) {
$total = $r[antal];
$sumTotal += $total;
echo"<table width='500' border='0'>
  <tr>
    <td width='156' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'>$r[navn]</span></td>
    <td width='101' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'>". fix_tlfnr("$r[nummer]") ."</span></td>
    <td width='177' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'>$r[by]</span></td>
    <td width='38' bgcolor=".ChangeColor($i)."><span style='font-size:13px;font-family:sans-serif;color:#555555;font-weight:bold;'><div align='right'>$r[antal]</div></span></td>
  </tr>
</table>";
$i++; // her sætter vi ($i +1)
}
echo "</body>
</html>";
Avatar billede Slettet bruger
25. januar 2008 - 13:04 #14
Body & html taget skal der kun være en af.
Ved du kører en while eller en forløkke på dem, vil du lave flere af dem.

Jeg tror også du skal flytte:
echo"<table width='500' border='0'>

op før din while.

og i bunden din </table> ud efter "}" og før </body>'en.
Avatar billede kattendk Nybegynder
25. januar 2008 - 14:21 #15
Tak coldgate det virker perfekt.. :)
Avatar billede Slettet bruger
26. januar 2008 - 02:44 #16
Glad for at kunne hjælpe.
Avatar billede nielle Nybegynder
26. januar 2008 - 11:38 #17
Jeg har intet i mod at denne her går til coldgate. :^)

Men en anden gang må du da godt give folk nooooget mere tid til at lægge et svar før at du lukker spørgsmålet.
Avatar billede kattendk Nybegynder
26. januar 2008 - 18:22 #18
Så vidt jeg er orienteret om, det script jeg tager, skal have pointsne?
Avatar billede nielle Nybegynder
27. januar 2008 - 13:48 #19
Du bestemmer fuldstændigt selv hvordan du vil fordele point. :^)

Jeg referere blot til at du bad "folk" om at lægge et svar i 25/01-2008 11:48:14. Dermed er der jo ligesom lagt op til at alle kan smide et svar hvis de føler sig fortjent. Og så synes jeg at man bør give folk tid til det - det er jo ikke alle der sidder klistret til skærmen hele tiden. ;^)
Avatar billede kattendk Nybegynder
27. januar 2008 - 15:53 #20
Jeg beklager så :o)

Dem som vil have point, skriv så opretter jeg en ny tråd.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester