Avatar billede summersun Nybegynder
13. januar 2004 - 18:12 Der er 17 kommentarer og
1 løsning

php variable til javascript

Hejsa

jeg har et lille irreterende problem.

<kode>

$pageHTML <-- Indholder noget html som bliver trukket ud af en database..

Nå jeg så prøver at køre koden nede under, så brokker dem sig over at det er en "Unterminated string constant" i javascript..

echo "<script>document.getElementById('test').innerHTML = '".$pageHTML."' </script>";



men hvis jeg nu tager det samme indhold fra database og gøre sådan her f.eks

$pageHTML = "<div><b>sdfsdfsdfsdf</b></div>";

echo "<script>document.getElementById('test').innerHTML = '".$pageHTML."' </script>";

så virker det fint...


hvad pokker er der galt :(
Avatar billede fjammi Nybegynder
13. januar 2004 - 18:17 #1
jeg ku forestille mig at det er fordi du bruge " inde i scriptet.
Prøv i stedet
echo "<script>document.getElementById('test').innerHTML = '.$pageHTML.' </script>";
Avatar billede nikolajdu Nybegynder
13. januar 2004 - 18:18 #2
Det er fordi din html indeholder "" eller '' og så konflikter de jo med javascripts. Sørg for at de bruger forskellige til javascript f.eks '' og så "" i html´en.
Avatar billede thesurfer Nybegynder
13. januar 2004 - 18:23 #3
Jeg mener at du kan enten bruge ' i stedet for ", eller bruge \" i stedet for ". dvs:

echo "<script>document.getElementById('test').innerHTML = '.$pageHTML.' </script>";

echo "<script>document.getElementById(\"test\").innerHTML = \".$pageHTML.\" </script>";

Er dog ikke helt sikker.. det er sikrest at bruge ' tegnet..
Avatar billede fangel Nybegynder
13. januar 2004 - 18:23 #4
prøv snare

echo "<script>document.getElementById('test').innerHTML = '" . $pageHTML . "'; </script>";

Morten
Avatar billede billen Nybegynder
13. januar 2004 - 18:26 #5
ellers kør en

echo "<script>document.getElementById('test').innerHTML = '".str_replace( "'", "\\'", $pageHTML )."' </script>";
Avatar billede summersun Nybegynder
13. januar 2004 - 18:31 #6
fint fint..

har prøvet alle ting på forhånd intet af det virker og der er ingen ' eller " i html'en...
Avatar billede billen Nybegynder
13. januar 2004 - 18:34 #7
Hvad er det for noget kode, du henter ud af DB? Kan du ikke lige prøve at vise os det!
Avatar billede billen Nybegynder
13. januar 2004 - 18:35 #8
Prøv at tilføj denne

var_dump( $pageHTML );

inden og smid lige resultatet herind.
Avatar billede Slettet bruger
13. januar 2004 - 18:35 #9
Ja, vis et eksempel på noget færdiggenereret kode; det er det eneste, der er interessant for javascriptere.
Avatar billede summersun Nybegynder
13. januar 2004 - 18:40 #10
tjaa... kan ikk se hvad forskellen skulle gøre.. men her er det

string(532) "<b>blablablablabla?</b><br>
<table border=0 width=100% cellspacing=0 cellpadding=0><tr><td valign=top background=images/blackdot.gif></td></tr></table>
<br>
blablablablabla<br><br>
blablablablablablablablablabla <br><br>
>> blablablablablablablablablablablablablablabla <br><br>


blablablablabla blablablablabla blablablablabla blablablablabla blablablablabla blablablablabla blablablablabla blablablablabla. <br><br>

>> blablablablablablablablablabla <br><br>    "
Avatar billede nikolajdu Nybegynder
13. januar 2004 - 18:45 #11
Det er dine linieskift der er problemet. Ikke <br> men de "håndlavet"
Avatar billede nikolajdu Nybegynder
13. januar 2004 - 18:47 #12
Den har jeg selv været igennem :))

http://www.eksperten.dk/spm/242436
Avatar billede summersun Nybegynder
13. januar 2004 - 18:47 #13
fair nok.... og hvordan nakker jeg dem i php kode?
Avatar billede summersun Nybegynder
13. januar 2004 - 18:51 #14
nikolajdu>>

smid et svar :D
Avatar billede nikolajdu Nybegynder
13. januar 2004 - 18:51 #15
oki doki :))
Avatar billede nikolajdu Nybegynder
13. januar 2004 - 18:52 #16
$extra = ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>", $extra);

Hvis folk skulle være i tvivl - Extra som værende teksten.
Avatar billede billen Nybegynder
13. januar 2004 - 18:55 #17
vil du gerne have så mange linieskift?

du kan også bare skrive

$extra = ereg_replace("(\r\n|\n\r|\n|\r)+", "\\n", $extra);
Avatar billede nikolajdu Nybegynder
13. januar 2004 - 19:34 #18
Billen - Nu kan jeg ikke huske den oprinelige forklaring 100% men det var noget med forskel på Windows og Unix systemer´s fortolkning af linebreaks der gjorde at løsningen blev så kringlet.
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