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æ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!
Annonceindlæg fra Novataris
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.
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æ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
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++; }
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>"; }
24. januar 2008 - 09:51
#5
nielle, så skal du også starte den et sted, med at definere en af farverne før lykken.
24. januar 2008 - 10:14
#6
Nej - hvis der ikke er sat en farve, bliver den første gang sat til "#C0C0C0".
24. januar 2008 - 10:28
#7
Suk... Undskyld... Klokken er ikke så mange ;)
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 />"; }
25. januar 2008 - 11:48
#9
Jeg siger tak! Hvis folk vil lægge svar?
Slettet bruger
25. januar 2008 - 12:17
#10
Ved ikke om du bruger mit, men lægger et svar alligevel.
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
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.
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>";
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.
25. januar 2008 - 14:21
#15
Tak coldgate det virker perfekt.. :)
Slettet bruger
26. januar 2008 - 02:44
#16
Glad for at kunne hjælpe.
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.
26. januar 2008 - 18:22
#18
Så vidt jeg er orienteret om, det script jeg tager, skal have pointsne?
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. ;^)
27. januar 2008 - 15:53
#20
Jeg beklager så :o) Dem som vil have point, skriv så opretter jeg en ny tråd.
Vi tilbyder markedets bedste kurser inden for webudvikling