Avatar billede Jakie Juniormester
09. august 2012 - 20:04 Der er 14 kommentarer og
1 løsning

forum - vise hvert anden emne med grå baggrundsfarve?

Hej :)

ER igang med at lave et forum, og vil gerne gerne vise hver anden emne med en anden farve end den forrige.

Ligesom her på udvikleren.dks side;
http://www.udvikleren.dk

Hvordan gøres dette?

På forhånd tak for hjælpen :)
Avatar billede DeeDawg Nybegynder
09. august 2012 - 20:48 #1
Det kan du fx gøre ved at tjekke om tallet du er nået til i dit loop, er lige eller ulige:

if ($i % 2) {
    echo 'Ulige tal';
} else {
    echo 'Lige tal';
}
Avatar billede Jakie Juniormester
09. august 2012 - 21:00 #2
Hmm det virker ikke?


if ($i % 2) {
              echo '<div class="nyhedsoverblikgrey"><a href="emne.php?id=' . $topic_id . '" class="nyhedsemnet">' .  $topic_subject . '</a><br />';
          echo $antal_kommentar . ' svar, ' . $counter . ' visninger, skrevet af <a href="profil.php?id=' . $topic_by . '">' . $topic_brugernavn . '</a>, den ' . $topic_date . '  </div>';   

} else {
          echo '<div class="nyhedsoverblik"><a href="emne.php?id=' . $topic_id . '" class="nyhedsemnet">' .  $topic_subject. '</a><br />';
          echo $antal_kommentar . ' svar, ' . $counter . ' visninger, skrevet af <a href="profil.php?id=' . $topic_by . '">' . $topic_brugernavn . '</a> ' . $topic_date . '  </div>';   

}
Avatar billede olsensweb.dk Ekspert
09. august 2012 - 21:27 #3
det burde virker!!

i css
.nyhedsoverblik{
background-color: #ffffff;
}

.nyhedsoverblikgrey{
background-color:#F0F0F6;
}



får du talt på $i ??, hvordan ser din løkke ud der udskriver dette
if ($i % 2) {
    echo '<div class="nyhedsoverblikgrey"><a href="emne.php?id=' . $topic_id . '" class="nyhedsemnet">' .  $topic_subject . '</a><br />';
    echo $antal_kommentar . ' svar, ' . $counter . ' visninger, skrevet af <a href="profil.php?id=' . $topic_by . '">' . $topic_brugernavn . '</a>, den ' . $topic_date . '  </div>'; 
}
else {
    echo '<div class="nyhedsoverblik"><a href="emne.php?id=' . $topic_id . '" class="nyhedsemnet">' .  $topic_subject. '</a><br />';
    echo $antal_kommentar . ' svar, ' . $counter . ' visninger, skrevet af <a href="profil.php?id=' . $topic_by . '">' . $topic_brugernavn . '</a> ' . $topic_date . '  </div>';
}


kunne det tænkes classe nyhedsemnet overskriver class nyhedsoverblik og class nyhedsoverblikgrey ??
Avatar billede olebole Juniormester
09. august 2012 - 21:28 #4
<ole>

Hvad betyder: "Hmm det virker ikke"?

Er det din CSS, der ikke virker? Scriptet i #2 sætter med garanti forskellige CSS-klasser på DIV'ene - alt efter om $i er lige eller ulige.

Som altid, når du koder PHP: Tjek kildekoden  *o)

/mvh
</bole>
Avatar billede Jakie Juniormester
09. august 2012 - 21:32 #5
Der er intet i vejen med CSS-  det er tjekket ! :)

For hvis jeg gør:

if( $odd = $topic_id%2 )
{
       
     
   
          echo '<div class="nyhedsoverblikgrey"><a href="emne.php?id=' . $topic_id . '" class="nyhedsemnet">' .  $topic_subject . '</a><br />';
          echo $antal_kommentar . ' svar, ' . $counter . ' visninger, skrevet af <a href="profil.php?id=' . $topic_by . '">' . $topic_brugernavn . '</a>, den ' . $topic_date . '  </div>';   
}
else
{     
          echo '<div class="nyhedsoverblik"><a href="emne.php?id=' . $topic_id . '" class="nyhedsemnet">' .  $topic_subject. '</a><br />';
          echo $antal_kommentar . ' svar, ' . $counter . ' visninger, skrevet af <a href="profil.php?id=' . $topic_by . '">' . $topic_brugernavn . '</a> ' . $topic_date . '  </div>';   

}
       

virker det :)

Altså jeg har bare en almindelig   

          while ($stmt->fetch()) {
?
Avatar billede olebole Juniormester
09. august 2012 - 21:42 #6
- og hvor fik du så $i fra? Den skal jo indeholde et tal, som tælles op ved hvert løkkegennemløb. Det er ikke en trylleformular  =)
Avatar billede Jakie Juniormester
09. august 2012 - 21:54 #7
Ja, men hvilket tal kan det være?

For rækkefølgen skiftes jo hele tiden efter hvilken tråd, der er sidst opdateret?
Avatar billede olebole Juniormester
09. august 2012 - 22:17 #8
$i = 0;
while ($stmt->fetch()) {
    // Din kode her
   
    $i++;   
}
Avatar billede Jakie Juniormester
09. august 2012 - 22:23 #9
Tak for hjælpen:)

I andre end Ole må gerne vedlægge svar - for så vidt jeg husker samler du ikke på point Ole?
Avatar billede olebole Juniormester
09. august 2012 - 23:41 #10
Selvtak - og helt korrekt  *o)
Avatar billede olebole Juniormester
09. august 2012 - 23:44 #11
PS: I øvrigt tror jeg, DeeDawg forudsatte en alm. for-løkke:

for ($i=0; $i<10; $i++) {
  // Kode
}

- og så har du jo altid et 'nyoptalt' $i til rådighed  =)
Avatar billede olsensweb.dk Ekspert
09. august 2012 - 23:53 #12
jeg springer over DeeDawg kom med løsningen
Avatar billede Jakie Juniormester
09. august 2012 - 23:53 #13
Hmm.. Men jeg kan ikke gøre det andet eller? :)
Avatar billede DeeDawg Nybegynder
10. august 2012 - 09:58 #14
Du kan sagtens bruge olebole's kode fra #8. Mit indlæg var nok ikke helt tilstrækkeligt, og for det beklager jeg. Man kan jo ikke helt vide hvilket loop du havde, så $i var bare en hentydning til at hvis ikke det var et for-loop, så måtte du selv sætte en tæller igang som olebole viser i #8. :)
Avatar billede Jakie Juniormester
10. august 2012 - 13:38 #15
Så forstår jeg det bedre :)
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