Avatar billede jan2001 Nybegynder
17. april 2007 - 22:20 Der er 14 kommentarer og
2 løsninger

php og semikolon

Jeg har følgende:

$html .= "<li><a href='".link."?quiz=$key'>$value</a>  <a href=></a>&nbsp&nbsp<a href="#" class="Links" onclick="MyWindow=window.open('highscore_popup.php?q=$key','popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=300,height=350'); return false;">Popup</a></li>\n";

Problemet er vist nok at php ikke kan skelne mellem semikolon. Altså hvilke der tilhører php og hvilke der tilhører html.
Hvordan gør jeg det?
Avatar billede nixir Nybegynder
17. april 2007 - 22:35 #1
Du vælger ikke rigtig hvordan dit out-put skal skrives... Nogen steder gør du det jeg mener er korrekt, at afbryde din tekst for at tilføje noget php og forsætte bagefter. Ex:

$html .= "<li><a href='".link."?quiz osv...

Men du har da vist glemt $ foran link ... $link ...

Hvis vi kigger videre går det igen galt:

$html .= "<li><a href='".link."?quiz=$key'>$value</a> osv...

Hvorfor $key? og $value? de skal have "" og .. rundt om sig ligesom $link Og det kommer igen ...:

[...] 'highscore_popup.php?q=$key','popup','toolbar [...]

Så til noget andet kritisk... Hver gang du skriver ", så starter du eller afbryder du ... "#" skal enten være '#' eller \"#\"

Samme gælder class="Links" og onclick="MyWin [...] false;"


Du har virkelig lavet nogle fejl du burde kunne se. Kan du endnu ikke se sådanne fejl, så bør du nok læse lidt flere bøger, ebooks, artikler etc. omkring php inden du går meget videre. Ellers vil du få rigtig mange problemer.
Avatar billede jan2001 Nybegynder
17. april 2007 - 22:53 #2
Den oprindelige ser sådan ud:
$html .= "<li><a href='".LINK."?quiz=$key'>$value</a></li>\n";

jeg vil bare have nedenstående indsat i ovenstående.

&nbsp;&nbsp;<a href='#' class='Links' onclick='MyWindow=window.open('highscore_popup.php?q=$key','popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=300,height=350'); return false;'>Popup</a>
Avatar billede nixir Nybegynder
17. april 2007 - 23:00 #3
Hvis du læser mit indlæg og retter fejlen, kan du jo komme med et løsningsforslag d fra mine kommentarer :) Det er nok den bedste måde at lærer det på!

Learning by doing !

Mvh.
Avatar billede jan2001 Nybegynder
17. april 2007 - 23:27 #4
$html .= "<li><a href='".$link."?quiz=" .$key. "'>$value</a>&nbsp;&nbsp;<a href='#' class='Links' onclick='MyWindow=window.open('highscore_popup.php?q=" .$key. "','popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=300,height=350'); return false;'>Popup</a></li>\n";

men det ændrer ingenting.
Avatar billede jan2001 Nybegynder
17. april 2007 - 23:54 #5
Nu har jeg bare gjort sådan:
$html .= "<li><a href='".CFG_QUIZ_URL."?quiz=$key'>$value</a>&nbsp;&nbsp;<a href='highscore_popup.php?q=$key'>Highscore</a></li>\n";

Det kan åbentbart ikke lide a href='#', så jeg må undvære popup og bare åbne en ny side.
Avatar billede nixir Nybegynder
18. april 2007 - 12:56 #6
$html .= "<li><a href='".$link."?quiz=" .$key. "'>".$value."</a>&nbsp;&nbsp;<a href='\#' class='Links' onclick='MyWindow=window.open('highscore_popup.php?q=" .$key. "','popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=300,height=350'); return false;'>Popup</a></li>\n";

prøv den...

du kan (næsten) altid smide et "\" tegn foran tegn der skal ignoreres ... fx:

echo "min "hund" er faktisk en kat"; //vil IKKE virke
echo "min \"hund\" er faktisk en kat"; //VIL virke

Der er en funktion der hedder addslahes() eller lign ... den kan man godt leje lidt med - men vil mene man ligeså godt kan gøre det selv ...
Avatar billede showsource Seniormester
18. april 2007 - 13:04 #7
Evt.

$html .= "<li><a href=\"".$link."?quiz=" .$key. "\">".$value."</a>&nbsp;&nbsp;<a href=\"#\" class=\"Links\" onclick=\"MyWindow=window.open('highscore_popup.php?q=" .$key. "','popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=300,height=350'); return false;\">Popup</a></li>\n";
Avatar billede jan2001 Nybegynder
18. april 2007 - 16:50 #8
ok nixir, Det virker at smide en "\" foran "mywindow....
bare pussigt at lige netop onclick ikke vil accepterer '
Avatar billede showsource Seniormester
19. april 2007 - 07:02 #9
Måske

onclick='MyWindow=window.open(\"highscore_popup.php?q="  $key ."\",\"popup\",\"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=300,height=350'); return false;\">

vil..
Avatar billede jan2001 Nybegynder
19. april 2007 - 14:52 #10
onclick vil åbenbart have sine "".

Hvad er egenlig meningen med at man ved hjælp ad / kan få serveren til at ignorere tegn. Kunne man så ikke ligeså godt lade være med at skrive dem til at starte med?
Avatar billede nixir Nybegynder
19. april 2007 - 15:04 #11
Hvis vi tager mit eksempel hvor man vil skrive: min "hund" er faktisk en kat, så bliver man nødt til at bruge \ (ikke /) for at ignorerer "-tegnet som ellers ville havet stoppet udskrivningen.

Et andet eksempel er dit eget hvor den ikke vil virke uden "-tegnet i onclick, derfor skriver du blot \" istedet for kun "

Håber det forklarer og hjælper lidt ..
Avatar billede jan2001 Nybegynder
19. april 2007 - 17:41 #12
Det jeg mente var at, når tegnet " alligevel skal ignoreres, hvofor så overhovedet skrive "

nå, læg et svar nixir.
Avatar billede showsource Seniormester
19. april 2007 - 18:18 #13
" skal jo ikke ignoreres, det skal outputtes.

echo"Juhu'du<p>";
echo"Juhu\"du";

echo'Juhu\'du<p>';
echo'Juhu"du';
Avatar billede showsource Seniormester
19. april 2007 - 18:19 #14
Og skrive ", fordi det er standard kodning i html ?
Avatar billede nixir Nybegynder
19. april 2007 - 19:50 #15
det skal ignoreres af php ... ;)

Forstår godt hvad du mener med at det skal outputtes, men faktisk har ingen af os ret ... for \n betyder som du ved fx linie-skift i en echo "\n" .. Så ingen af os har ret. Php læser alle \ og ser det efterfølgende tegn... og så outputter den ud fra det.

sender det her som svar ...
Avatar billede jan2001 Nybegynder
19. april 2007 - 20:07 #16
Så må det jo være et eller andet med at php ikke ser " som stoptegn, når har \ foran.

Men det virker, og det er hovedsagen. Tak for hjælp.
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