Avatar billede allandk Nybegynder
27. september 2003 - 14:14 Der er 2 kommentarer og
1 løsning

Hjælp til at ændre løkke fra horisontal til vertikal echo

Denne i øvrigt fikse kalender udskriver måneden række for række, men jeg vil hellere have det listet unde hinanden. Kan det lade sig gøre?

    global $PHP_SELF, $headerColor, $bgColor, $borderColor, $filledColor, $calSize;
    $entries = $this->getDaysInMonth ($yr, $mn);
    $firstSq = $this->getFirstDayInMonth ($yr, $mn);

    $daysArray = $this->getEntryArray($yr, $mn);
    echo "<div align='center'>";
    echo "<table width = '$calSize' border='1' cellspacing='4' align='center' bgcolor='$headerColor' bordercolor='$borderColor'>\n";
    echo "<tr>\n";
    echo "<td width = '14%'><b>Søn</b></td>\n<td width = '14%'><b>Man</b></td>\n<td width = '14%'><b>Tir</b></td>\n<td width = '14%'><b>Ons</b></td>\n<td width = '14%'><b>Tor</b></td>\n<td width = '14%'><b>Fre</b></td>\n<td width = '14%'><b>Lør</b></td>\n";
    echo "</tr>\n";
    // some of the first sqaures may be blank i.e if month doesn't
    // start on Sunday. so use $count to determine if square is blank
    $count = 0 -  $firstSq ;

    for ($r=0; $r<6; $r++)
    {
        echo "<tr>\n";
        for ($c=0; $c<7; $c++)
        {
            $count++;
            if ($count <  1 || $count > $entries)
            {
                echo " <td bgcolor= '$bgColor' width = '14%'><center>&nbsp;</center></td>\n";
                continue;
            }
            else if (!in_array ($count, $daysArray))
            {
                echo "<td bgcolor= '$bgColor' width = '14%'>\n<center>";
            }
            else
            {
                echo "<td bgcolor='$filledColor' width = '14%'>\n<center>";
            }
            echo "<a href = '$PHP_SELF?daySelect=$count&monthSelect=$mn&yearSelect=$yr'>$count</a>";
            echo "</center>\n</td>\n";
        }
        echo "</tr>\n";
    }
    echo "</table>";
  echo "</div>";
  }
Avatar billede tjens Nybegynder
27. september 2003 - 21:34 #1
Jeg har været nødt til at fjerne noget af din kode, for at demonstrere, da du jo ikke har kunnet vise hele sammenhængen.
Men her er et eksempel på din eksisterende sortering og så den du ønsker:

<html><body>
<?php
    echo "<div align='center'>";
    echo "<table  border='1' cellspacing='4' align='center' >\n";
    echo "<tr>\n";
    echo "<td width = '14%'><b>Søn</b></td>\n
          <td width = '14%'><b>Man</b></td>\n
          <td width = '14%'><b>Tir</b></td>\n
          <td width = '14%'><b>Ons</b></td>\n
          <td width = '14%'><b>Tor</b></td>\n
          <td width = '14%'><b>Fre</b></td>\n
          <td width = '14%'><b>Lør</b></td>\n";
    echo "</tr>\n";
    $count = 0;
    for ($r=0; $r<6; $r++)
    {
        echo "<tr>\n";
        for ($c=0; $c<7; $c++)
        {
            $count++;
            echo " <td width = '14%'><center>$count</center></td>\n";
        }
        echo "</tr>\n";
    }
    echo "</table>";
  echo "</div>";
?>
<hr>
<div align='center'>
<table  border='1' cellspacing='4' align='center'>
<?php
    $dn = array("Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør" );
    for ($c=0; $c<7; $c++)
    {
      echo "<tr>\n";
      for ($r=0; $r<6; $r++)
        { 
            if ($r == 0)
              echo " <td width = '35px'><b>$dn[$c]</b></td>\n";
            $count = 1 + $r*7 + $c;
            echo " <td width = '35px'><center>$count</center></td>\n";
        }
        echo "</tr>\n";
    }
?>
</table></div></body></html>
Avatar billede allandk Nybegynder
27. september 2003 - 21:45 #2
Dit svar er perfekt, men jeg må have formuleret mig uklart. Jeg håber du er frisk på at hjælpe videre.

Det jeg er ude efter en listning fra 1-28/29/30/31 nedaf fra start til slut, altså:

man 1
tirs 2
ons 3
tors 4
fre 5
lør 6
søn 7
man 8
tirs 9
.
.
.
lør 29
søn 30

Forstår du?

Kan du greje den?
Avatar billede allandk Nybegynder
19. januar 2004 - 16:03 #3
Tak for hjælpen tjens.
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