Avatar billede lesp Nybegynder
31. december 2007 - 10:42 Der er 19 kommentarer og
2 løsninger

Tabel med hvert andet felt en anden farve

Hej Eksperter
Jeg har en tabel, hvor jeg gerne vil have, at hver anden <tr> skal have en anden farve som baggrundsfarve. Hvad gør jeg?
Avatar billede riversen Nybegynder
31. december 2007 - 10:59 #1
lav en løkke med en tæller... hver gang tæller % 2 == 0 sættes den ene farver, ellers den anden farve.
Avatar billede gf Nybegynder
31. december 2007 - 11:01 #2
Jeg gør således det kan nok gøres en smule mere elegant
variablerne ændrer du efter behag

mvh gf

$x = "0";// til tælleren vedrørende cellefarve
$sql = "SELECT id, navn FROM elevdata where linie1 = '$_POST[blabla]' order BY navn" or die( mysql_error() );
    $qh = mysql_query( $sql ) or die( mysql_error() );
    while ( $row = mysql_fetch_array( $qh ) ) {
    if($x%2 == 0) $celle ="e8e9eb";// her sætter du fareve 1
    if($x%2 <> 0) $celle ="ffffff"; // og farve 2
    ?>
    <tr>
    <td align="right" bgcolor="#<?=$celle?>"><?=$row[id]?>&nbsp;&nbsp;</td>
    <td bgcolor="#<?=$celle?>"><?=$row[navn]?></td>
    </tr>
<? $x = $x + 1;
} ?>
</table>
Avatar billede riversen Nybegynder
31. december 2007 - 11:02 #3
fx
for( $i = 0; $i < $rows; $i++ )
{
  if( $i % 2 == 0 )
    $color = "#dffddf";
  else
    $color = "#fdfdfd";

  // lav dine rækker med $color her
}
Avatar billede nielle Nybegynder
31. december 2007 - 11:48 #4
Eller:

for( $i = 0; $i < $rows; $i++ )
{
  $color = ( $i % 2 == 0 ) ? "#dffddf" : "#fdfdfd";

  // lav dine rækker med $color her
}
Avatar billede nielle Nybegynder
31. december 2007 - 11:52 #5
Men nu er det jo ikke sikkert at lesp har en for-løkke:

$x = "0";// til tælleren vedrørende cellefarve
$sql = "SELECT id, navn FROM elevdata where linie1 = '$_POST[blabla]' order BY navn" or die( mysql_error() );
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_array( $qh ) ) {
    $bgcolor = ($bgcolor == "e8e9eb") ? "ffffff" : "e8e9eb";
?>
    <tr>
    <td align="right" bgcolor="#<?=$bgcolor?>"><?=$row[id]?>&nbsp;&nbsp;</td>
    <td bgcolor="#<?=$bgcolor?>"><?=$row[navn]?></td>
    </tr>
}
?>
</table>

(Og man kunne såmæn nøjes med at sætte $bgcolor direkte på <tr> taggen).
Avatar billede lesp Nybegynder
31. december 2007 - 11:56 #6
Nielle? Kan du forklare din sidste kode? Altså hvor du gør hvad, for jeg kan ikke lige umiddelbart gennemskue den.
FX:  $bgcolor = ($bgcolor == "e8e9eb") ? "ffffff" : "e8e9eb";

Hvad gør den der?

Og hvordan udskrives følgende?:
<tr>
    <td align="right" bgcolor="#<?=$bgcolor?>"><?=$row[id]?>&nbsp;&nbsp;</td>
    <td bgcolor="#<?=$bgcolor?>"><?=$row[navn]?></td>
    </tr>
Avatar billede nielle Nybegynder
31. december 2007 - 12:12 #7
> Kan du forklare din sidste kode?

Linjen:

$bgcolor = ($bgcolor == "e8e9eb") ? "ffffff" : "e8e9eb";

går brug af "?:" operatoren:

http://dk.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary

Den linje kode er simplelthen bare en mere kompakt version af dette:

if ($bgcolor == "e8e9eb") {
    $bgcolor = "ffffff";
} else {
    $bgcolor = "e8e9eb";
}


> Og hvordan udskrives følgende?:

Siden at den bid af koden ikke er omklamret af <? ... ?> så bliver den automatisk udskrevet.

Når der står sådan noget som:

... <?=$bgcolor?> ...

- i sådan noget, så er det bare en forkortelse af:

... <? echo $bgcolor; ?> ...
Avatar billede lesp Nybegynder
31. december 2007 - 12:17 #8
Men der er to ?> mens der kun er ét <? ?
Avatar billede lesp Nybegynder
31. december 2007 - 12:17 #9
Omkring hele koden?
Avatar billede lesp Nybegynder
31. december 2007 - 12:23 #10
Hele min kode ser nu sådan ud:

<?
include("connect.php");
session_start();
$x = "0";// til tælleren vedrørende cellefarve
$sql = "SELECT * FROM kurv WHERE sesid = '{$ip}'" or die( mysql_error() );
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_array( $qh ) ) {
    $bgcolor = ($bgcolor == "e8e9eb") ? "ffffff" : "e8e9eb";
?>
    <tr>
    <td align="right" bgcolor="#<?=$bgcolor?>"><?=$row[id]?>&nbsp;&nbsp;</td>
    <td bgcolor="#<?=$bgcolor?>"><?=$row[navn]?></td>
    </tr>
}
?>
</table>
Avatar billede gf Nybegynder
31. december 2007 - 12:24 #11
Hej

det er fordi den første ?> afslutter den øverste php kode stump

mvh gf
Avatar billede gf Nybegynder
31. december 2007 - 12:26 #12
der mangle <?

<? } ?>
</table>

mvh gf
Avatar billede nielle Nybegynder
31. december 2007 - 12:27 #13
Der skal bare indsætes en <? og så burde det virke :^)
Avatar billede lesp Nybegynder
31. december 2007 - 12:28 #14
Okay. Men stadig skiftes der ikke farve mellem hvert udskrift
Avatar billede nielle Nybegynder
31. december 2007 - 12:33 #15
Det burde det - hvordan serdin kode ud, og hvad ser du på din skærm?
Avatar billede lesp Nybegynder
31. december 2007 - 12:35 #16
Min kode:

<?
include("connect.php");
session_start();
$ip=$_SERVER['REMOTE_ADDR'];


include("connect.php");
session_start();
$x = "0";// til tælleren vedrørende cellefarve
$sql = "SELECT * FROM kurv WHERE sesid = '{$ip}'" or die( mysql_error() );
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_array( $qh ) ) {
    $bgcolor = ($bgcolor == "e8e9eb") ? "ffffff" : "e8e9eb";
?>
    <tr>
    <td align="right" bgcolor="#<?=$bgcolor?>"><?=$row[id]?>&nbsp;&nbsp;</td>
    <td bgcolor="#<?=$bgcolor?>"><?=$row[smykkenavn]?></td>
    </tr>
<? }
?>
</table>

På min skærm:

4  Smykkenavn2 3  Smykkenavn4 5  Smykkenavn4 6  Smykkenavn3 7  Smykkenavn5
Avatar billede nielle Nybegynder
31. december 2007 - 12:37 #17
Og  mod hvilken baggrundsfarve?
Avatar billede nielle Nybegynder
31. december 2007 - 12:37 #18
Nåå, der mangler en <table> til at starte det hele med.
Avatar billede lesp Nybegynder
31. december 2007 - 12:41 #19
Nemlig nielle. Jeg vil nok sige at pointene må gå til jer begge. Mange tak for hjælpen! Skriv et svar begge to
Avatar billede nielle Nybegynder
31. december 2007 - 12:47 #20
(vi var nu 3 på denne her)

Svar :^)
Avatar billede gf Nybegynder
31. december 2007 - 13:24 #21
Jamen så svar herfra :)
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