Avatar billede gf Nybegynder
15. december 2004 - 19:39 Der er 11 kommentarer og
1 løsning

Parser error

Hej er der nogen der kan gennemskue hvad jeg gør forkert i linie 30 jeg får er parser error unexpected T_CONSTANT_ENCAPSED_STRING

Mvh GF

<?php

$aar = (empty($_GET['y'])) ? date(Y) : $_GET['y'];
$maaned = (empty($_GET['m'])) ? date('m') : $_GET['m'];
$uger = array('Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn');
$dato = mktime(0,0,0,$maaned, 1, $aar);
$antalDageMaaned = date('t', $dato);
$foersteUgedag = (date('w', $dato) == 0) ? 7 : date('w', $dato);
print ('<h2>'.date('F', $dato).' - '.$aar.'</h2>');

printf('<a href="'.$_SERVER['PHP_SELF'].'?m=%s&y=%s">Forrige</a> - <a href="'.$_SERVER['PHP_SELF'].'?m=%s&y=%s">Næste</a>', date('m', strtotime("-1 month", $dato)), date('Y', strtotime("-1 month", $dato)), date('m', strtotime("+1 month", $dato)), date('Y', strtotime("+1 month", $dato)));

print ('<table border="1"><tr>');

for ($i = 1; $i < count($uger); $i++) {
  print ('<td>'.$uger[$i].'</td>');
}
print ('</tr>');

for ($dag = 1; $dag <= $antalDageMaaned; $dag++) {

  print ('<tr>');

  for ($u = 1; $u <= 7; $u++) {

    if ($u < $foersteUgedag && $foersteUgedag+$dag <= 8) {
      print ('<td></td>');
    } else {
// Linie 30 herunder
      print ($dag <= $antalDageMaaned) ? '<td>''<a href="'test.php?m=%s&y=%s'">'.$dag.'</a></td>' : '<td></td>';
     
     

      if ($u != 7) $dag++;
    }
  }
  print ('</tr>');
}

print ('</table>');
?>
Avatar billede jakoba Nybegynder
15. december 2004 - 20:20 #1
der er 2 '-tegn lige efter hinanden. og også et sæt overflødige ' tegn omkring din url der forvirre php's streng fortolkning.
dvs:
      print ($dag <= $antalDageMaaned) ? '<td>''<a href="'test.php?m=%s&y=%s'">'.$dag.'</a></td>' : '<td></td>';
jeg tror det du mener er:
      print ( $dag <= $antalDageMaaned)
              ? '<td><a href="test.php?m=%s&y=%s">'.$dag.'</a></td>'
              : '<td></td>';

men det giver desværre stadigvæk ikke rigtig nogen mening  urlparametrene '?m=%s&y=%s' giver ingen mening. det ligner noget du har kopieret fra din printf linie.
Avatar billede gf Nybegynder
15. december 2004 - 20:38 #2
Hej jakoba

Tak for hjælpen.

Urlparametrene var bare en test, i den endelige udgave skal de overføre dato og årstal.
Lige en sidste ting, jeg ved godt jeg presser citronen, men kan du gennemdkue om man kan få ugedagen op som url parameter.

mvh gf
Avatar billede jakoba Nybegynder
15. december 2004 - 20:46 #3
jada, på samme måde som med måned og år
$ugedag = date( "w", $datoverdi );

w      Numeric representation of the day of the week
                  0 (for Sunday) through 6 (for Saturday)
Avatar billede gf Nybegynder
15. december 2004 - 21:04 #4
Hej jakoba

Jeg tænkte nærmere på ugedagen for den dato brugeren trykker på i kalenderen. Hvis det f. eks er den 17 så skal jeg på en eller anden måde have fundet ud hvad dag det er.

Men anyway det var ikke en del af spørgsmålet, så du kan bare lægge et svar.

mvh gf
Avatar billede jakoba Nybegynder
15. december 2004 - 21:12 #5
Ja, så du har forhåbentlig en variabel  $datoverdi  der indeholder php timestamp for den dag.  det er ugedagen du får, ikke dag i måneden

takker.
Avatar billede gf Nybegynder
15. december 2004 - 21:23 #6
Hej

Lige i forhold til din løsning, så kan jeg ikke prige variabler i url'en der kommer kun teksten f. eks <a href="test.php?aar=$aar">'.$dag.'</a>

detter resulterer i at værdien  for åår ikke står i urlen men kun $aar.

jeg har forsøgr mig med <a href="test.php?aar=<?=$aar?>">'.$dag.'</a>

men det funker desværre heller ikke

Mvh gf
Avatar billede jakoba Nybegynder
15. december 2004 - 21:58 #7
Der er 2 meget forskellige streng syntakser i php.

den du bruger er at omkranse strenge med '-tegn, id den slags strenge kan man ikke lave mange nammestreger udover  \' for at få et '-tegn indeni strengen. Til gengæld er den hurtigere end

den anden hvor strenge omkranses af "-tegn, i sådanne strege vil simple variabelnavne (med $ forrest) blive udskiftet med indholdet af den variabel der står, Der kan bruges til mere, men er så også nemmere at lave fejl i, samt langsommere at bruge.

læs mere her: http://dk.php.net/manual/en/language.types.string.php

så hvis du havde skrevet:
    print( "<a href='test.php?aar=$aar'>$dag</a>" );
ville værdierne for $aar og $dag være kommet ind i strengen.

mvh JakobA
Avatar billede jakoba Nybegynder
15. december 2004 - 22:00 #8
ups.  nammestreger  skulle være  narrestreger
Avatar billede gf Nybegynder
15. december 2004 - 22:09 #9
Hej igen   

ok jeg kan se hvad du mener. Men hvordan får jeg lige :

  print( "<a href='test.php?aar=$aar'>$dag</a>" );

Proppet ind i:
print ( $dag <= $antalDageMaaned)
              ? '<td><a href="test.php">'.$dag.'</a></td>'
              : '<td></td>';

eller lavet det om?

mvh gf
Avatar billede jakoba Nybegynder
15. december 2004 - 22:14 #10
fx:
print ( $dag <= $antalDageMaaned)
              ? "<td><a href='test.php?aar=$aar'>$dag</a></td>"
              : '<td></td>';
Avatar billede jakoba Nybegynder
15. december 2004 - 22:15 #11
Ups, der mangler da et par parenteser der. det skal være:
print ( ($dag <= $antalDageMaaned)
              ? "<td><a href='test.php?aar=$aar'>$dag</a></td>"
              : '<td></td>' );
Avatar billede gf Nybegynder
15. december 2004 - 22:22 #12
Kanon

1000 yak for hjælpen

Mvh gf
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