<table><tr><td></td></tr></table> Varranan rad färg?

Permalänk
Medlem

<table><tr><td></td></tr></table> Varranan rad färg?

Hejsan. Är det någon som har ett bra tips
på hur man får varranan rad i en table att ha en färg?

Så att det lättare blir att följa en lång rad, ist för att ha den typiska
border kanterna.

Språk: PHP, HTML

Tack så mycket för alla tips!:D

Permalänk
Medlem

<?php $res = "<table>"; for ($i = 0; $i <= 10; ++$i) { $res .= "<tr style='background:".($i % 2 == 0 ? "blue" : "orange").";'> <td>asdasd</td> <td>affafw</td> </tr>"; } $res .= "</table>"; echo $res; ?>

Permalänk

Precis som Elactos skriver så behöver du serversidespråk för detta. Har för mig att det går att göra med spry men det enklaste är som ovan

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

ska genast prova! tack för hjälpen!

Permalänk
Medlem

<?php require('mysql_connect.php'); $result = mysql_query("SELECT * FROM matches"); $res = "<table width='800' class='table' border='0'>" while($row = mysql_fetch_array($result)) { $id = $row['id']; $date = $row['date']; $teamid = $row['team_id']; $game = $row['squad']; $vs = $row['vs']; $map = $row['map']; $results = $row['result']; for($i = 0; $i <=10; ++$i){ $res .= "<tr style=' background:". ($i % 2 == 0 ? "blue" : "orange"). ";'> <td width='75'>$date</td> <td width='120'>$game</td> <td width='25'>vs.</td> <td width='255'>$vs</td> <td width='125'>$map</td> <td width='50'>$results</td> <td width='50'><a href='?sida=matchesdetails&id=$id'>Details</td> </tr> "; } $res .="</table>"; print "$res; } ?>

Får error: Parse error: parse error in C:\Users\Jesper Johansson\Desktop\wamp\www\e\include\matches.php on line 10

Har aldrig skrivit något med for innan, vad gör jag för galet fel?

stor tack igen!

Permalänk
Medlem

Har man inte kunskap eller tillgång till ett serversidesspråk kan man göra detta med jQuery:

$('tr':odd).css({backgroundColor: '#f00'});

Även med CSS3 när webbläsarna får fullt stöd:

tr:nth-child(2n+1)

Är det så få rader så man kan göra det manuellt är det ganska enkelt att bara skapa en klass i CSS2 och lägga klassen på varannan rad:

<style> tr.odd {background-color: #f00;} </style> <body> <table> <tr class="odd"> <td>Denna rad är röd</td> </tr> <tr> <td>inte denna rad</td> </tr> <tr class="odd"> <td>men denna</td> </tr> </table> </body>

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Permalänk
Medlem
Skrivet av save:

Har man inte kunskap eller tillgång till ett serversidesspråk kan man göra detta med jQuery:

$(‘tr’:odd).css({backgroundColor: ‘#f00’});

Även med CSS3 när webbläsarna får fullt stöd:

tr:nth-child(2n+1)

Är det så få rader så man kan göra det manuellt är det ganska enkelt att bara skapa en klass i CSS2 och lägga klassen på varannan rad:

<style> tr.odd {background-color: #f00;} </style> <body> <table> <tr class="odd"> <td>Denna rad är röd</td> </tr> <tr> <td>inte denna rad</td> </tr> <tr class="odd"> <td>men denna</td> </tr> </table> </body>

Är ganska många rader

Permalänk
Medlem
Skrivet av neterul:

<?php require('mysql_connect.php'); $result = mysql_query("SELECT * FROM matches"); $res = "<table width='800' class='table' border='0'>" while($row = mysql_fetch_array($result)) { $id = $row['id']; $date = $row['date']; $teamid = $row['team_id']; $game = $row['squad']; $vs = $row['vs']; $map = $row['map']; $results = $row['result']; for($i = 0; $i <=10; ++$i){ $res .= '<tr style=" background:'. ($i % 2 == 0 ? "blue" : "orange").';"> <td width="75">'.$date.'</td> <td width="120">'.$game.'</td> <td width="25">vs.</td> <td width="255">'.$vs.'</td> <td width="125">'.$map.'</td> <td width="50">'.$results.'</td> <td width="50"><a href="?sida=matchesdetails&id='.$id.'">Details</td> </tr>'; } $res .="</table>"; print $res; } ?>

Testa med det och se ifall det fungerar.

Var ett tag sedan jag pysslade med PHP nu så kan ha fel.

Permalänk
Medlem

Här är en lösning, vet inte om den är optimal direkt, men det funkar.

<?php $calc = 0; while ($row = mysql_fetch_array($result) ) { $calc = $calc +1; $check = $calc & 1; //kollar om $calc är udda eller jämn if ($check == 1) { print "<tr class='same'><td>$variabel1</td><td>$variabel2</td></tr>"; } else{ print "<tr class='different'><td>$variabel1</td><td>$variabel2</td></tr>"; } } ?>

Detta kräver dock att du har två klasser i din CSS fil, som sätter bakgrundsfärgen t.ex. följande:

.same{ background-color: #DDD; border-style:none; }

Jag tror det borde funka, men jag är verkligen inget geni angående PHP. Finns säkert någon smartare/snyggare lösning, men om varannan rad ska ha olika färg fungerar koden ovan iaf.

Permalänk
Medlem

<table> <?php $i = 0; foreach($result as $row): ?> <tr class="<?= $i % 2 == 0 ? 'class1' : 'class2'; $i++; ?>"> <td></td> </tr> <?php endforeach ?> </table>

Det här förutsätter givetvis att du kan köra php, att du har den tabulära datan i $result och att du har en stilmall med class1 och class2.

Permalänk
Medlem

<?php require('mysql_connect.php'); $result = mysql_query("SELECT * FROM matches"); $res = "<table width='800' class='table' border='0'>"; // Kan det haft något att göra med det skanade ; här? while($row = mysql_fetch_array($result)) { $id = $row['id']; $date = $row['date']; $teamid = $row['team_id']; $game = $row['squad']; $vs = $row['vs']; $map = $row['map']; $results = $row['result']; $res .= '<tr style=" background:'. ($i % 2 == 0 ? "blue" : "orange").';"> // Om $i är jämt delbart med 2 eller inte. <td width="75">'.$date.'</td> <td width="120">'.$game.'</td> <td width="25">vs.</td> <td width="255">'.$vs.'</td> <td width="125">'.$map.'</td> <td width="50">'.$results.'</td> <td width="50"><a href="?sida=matchesdetails&id='.$id.'">Details</td> </tr>'; $i++; // öka $i med ett för varje runda i loopen. } $res .="</table>"; print $res; ?>

Du ska väl inte ha for loopen i din while loop, då kommer det ju skriva ut 10 rader med exakt samma innehåll. Den där koden borde fingera bättre.

Permalänk
Medlem

[QUOTE=Sir. Haxalot;10216000]

<?php require('mysql_connect.php'); $result = mysql_query("SELECT * FROM matches"); $res = "<table width='800' class='table' border='0'>"; // Kan det haft något att göra med det skanade ; här? while($row = mysql_fetch_array($result)) { $id = $row['id']; $date = $row['date']; $teamid = $row['team_id']; $game = $row['squad']; $vs = $row['vs']; $map = $row['map']; $results = $row['result']; $res .= '<tr style=" background:'. ($i % 2 == 0 ? "blue" : "orange").';"> // Om $i är jämt delbart med 2 eller inte. <td width="75">'.$date.'</td> <td width="120">'.$game.'</td> <td width="25">vs.</td> <td width="255">'.$vs.'</td> <td width="125">'.$map.'</td> <td width="50">'.$results.'</td> <td width="50"><a href="?sida=matchesdetails&id='.$id.'">Details</td> </tr>'; $i++; // öka $i med ett för varje runda i loopen. } $res .="</table>"; print $res; ?>

Du ska väl inte ha for loopen i din while loop, då kommer det ju skriva ut 10 rader med exakt samma innehåll. Den där koden borde fingera bättre.[/QUOTE]

körde i princip en copy paste på de du gjorde.
Får dessa felen dock.

Notice: Undefined variable: i in C:\Users\Jesper Johansson\Desktop\wamp\www\e\include\matches.php on line 41

Notice: Undefined variable: i in C:\Users\Jesper Johansson\Desktop\wamp\www\e\include\matches.php on line 51

MEN de blev färg på varannan rad

Permalänk
Medlem
Skrivet av KurreKula:

Precis som Elactos skriver så behöver du serversidespråk för detta. Har för mig att det går att göra med spry men det enklaste är som ovan

Behöver och behöver.... bara om det är livsviktigt att det fungerar i IE (och det är det inte). Följande CSS(3) gör samma sak i typ allt utom IE:

tr:nth-child(odd){ background-color: (valfri annorlunda färg); }

Permalänk
Medlem

sätt $i = 0; någonstans före loopen.

Permalänk
Medlem
Skrivet av Sir. Haxalot:

Du ska väl inte ha for loopen i din while loop, då kommer det ju skriva ut 10 rader med exakt samma innehåll. Den där koden borde fingera bättre.

Och sen $i = 0; ovanför while() för att inte skriva inkorrekt phpkod.

Permalänk
Medlem

Fungerar utmärkt! Stort tack till alla för tips och tricks!
Sweclockers <3.

Have a nice day!