Gå til innhold

Forskjellig farge på annenhver linje i tabell


Gjest Slettet+6132

Anbefalte innlegg

Gjest Slettet+6132

Nå har jeg googlet meg gul og blå, har kikket på masse koder, men finner ikke ut noe som funker.

 

Jeg trenger en liten kode som kan sette forskjellige farger på annenhver linje i en tabell.

 

Tabellen:

<?
echo "
<html>
<head>
<title>Filmer</title>
</head>

<body>
<a href=add/>Legg til film</a><br>

<table border=1 cellpadding=4 cellspacing=0>
<tr> 
<td bgcolor=lightblue>Tittel</td>
<td bgcolor=lightblue>Codec</td>
<td bgcolor=lightblue>Format</td>
<td bgcolor=lightblue>Info</td>
<td bgcolor=lightblue>Omtale</td>
<td bgcolor=lightblue>Årstall</td>
</tr>"; 

$array = file("add/010101.txt");

sort($array);

foreach ($array as $linje) 
{ 
 $del=split(";",$linje); 
 echo "
<tr bgcolor='HER_VIL_JEG_HA_RANDOM_FARGE_PÅ_LINJENE'> 
<td><b>$del[0]</b></td>
<td><center><i>$del[1]</i></center></td>
<td><center><i>$del[2]</i></center></td>
<td><a href=http://$del[3] target=_blank>$del[3]</a></td>
<td><center>$del[4]</center></td> 
<td><center>$del[5]</center></td>
</tr>
";
}
echo "
</table>
</body>
</html>";
?>

 

<tr bgcolor='HER_VIL_JEG_HA_RANDOM_FARGE_PÅ_LINJENE'>

Her er det altså jeg vil ha FFFFFF og EEEEEE på annenhver linje

Koden her brukes til å legge alle filmene mine inn i en tabell, de er lagret i egen fil (som blir skrevet til fra en annen phpfil når jeg skal legge til filmer)

 

(Filmene er lagret på måten:

Filmnavn;Codec;Format;Info;Omtale;Årstall)

 

Finnes det noen måte å løse problemet mitt på? Går fint an hvis dere klarer å lage en mer praktisk fil som viser filmene enn den jeg har, vil bare ha slik at det blir forskjellig farge på annenhver linje...

 

På forhånd takk :roll:

Endret av Slettet+6132
Lenke til kommentar
Videoannonse
Annonse

dette er tiktignok i ASP, men den skal ikke være noe problem for deg å få konvertert dette. (dette puttes i første <tr> i tabellen)

 

 	Dim x, bgcolor
   if x = 1 then
       	bgcolor="gray"
       	response.write " bgcolor='#C8C2C2'>"
       	x=2
 	Else
       bgcolor="White"
       Response.write " bgcolor='#FFFFFF'>"
       x=1
   End if 

 

dette puttes i neste <td>-tag

 

bgcolor='" & bgcolor & "

 

hvis det er en dvd-database du lager så har jeg nettop laget det samme i asp.. mye slit og koding for å få det til, men absolutt verdt det.

Lenke til kommentar
Gjest Slettet+6132

Som sagt, vil putte det i den nederste <tr> tagen, er den som utgjør HELE lista med filmer, men vil at den skal bli forskjellig på annenhver linje. Vet ikke om det er mulig, derfor sier jeg at jeg er åpne for andre forslag til å printe ut innholdet fra txtfila til en tabell ;)

Lenke til kommentar
Som sagt, vil putte det i den nederste <tr> tagen, er den som utgjør HELE lista med filmer, men vil at den skal bli forskjellig på annenhver linje. Vet ikke om det er mulig, derfor sier jeg at jeg er åpne for andre forslag til å printe ut innholdet fra txtfila til en tabell ;)

grunnen til at du skal putte inn den ekstra bgcolor='" & bgcolor & " er for at det skal bli på annenhver linje.. brukt dem samme kodingen selv til å lage annenhver linje med forskjellig kode..

Lenke til kommentar

Jeg anbefaler fremgangsmåten i A List Apart's artikkel "Zebra Tables". Det går riktignok på Javascript, men dette er en veldig enkel metode å implementere.

 

Om du skal bruke PHP er nok den enkleste metoden å bruke modulus-operatøren (%) for å sjekke om et tall er partall eller oddetall:

 

$counter = 0;
foreach ($array as $linje) 
{
$counter++;
if(($counter % 2) == 0)
$color = "#fff";
else
$color = "#eee";

$del=split(";",$linje); 
echo <<<end
<tr bgcolor="$color"> 
<td><b>$del[0]</b></td>
<td><center><i>$del[1]</i></center></td>
<td><center><i>$del[2]</i></center></td>
<td><a href="http://$del[3]" target="_blank">$del[3]</a></td>
<td><center>$del[4]</center></td> 
<td><center>$del[5]</center></td>
</tr>
end;
}

 

Har også fikset litt på syntaksen din, slik at HTML-en blir outputtet korrekt. :)

 

 

Edit: kan jo utdype bruken av modulus-operatøren litt mer. Modulus er ganske enkelt divisjon med rest, det vil si at dersom du deler 5 på 2 vil du få 1 i rest, fordi det høyeste tallet 5 går opp i er 2 (2*2=4, pluss den ene i rest = 5). Koden over sjekker om det er rest i radene, om det ikke er rest er det en partallsrad (alle partall kan deles på 2), mens dersom det er rest (ingen oddetall gir heltall som svar når de deles på 2) vil det være en oddetallsrad som farges grå.

Endret av Lokaltog
Lenke til kommentar
Gjest Slettet+6132

Prøvde det lokaltog, da fikk jeg:

 

Parse error: syntax error, unexpected T_IS_EQUAL in c:\AppServ\www\filmer\index.php on line 39

 

EDIT: linje 39 er "if($counter % 2) == 0)"

EDIT 2: fjerna ) etter % 2 så funka det :yes:

 

Men husk at du må ha ffffff ikke fff i opera, ellers klikker det...

Endret av Slettet+6132
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...