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 :(
Annonceindlæg fra Kingston Technology
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>";
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.
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..
13. januar 2004 - 18:23
#4
prøv snare echo "<script>document.getElementById('test').innerHTML = '" . $pageHTML . "'; </script>"; Morten
13. januar 2004 - 18:26
#5
ellers kør en echo "<script>document.getElementById('test').innerHTML = '".str_replace( "'", "\\'", $pageHTML )."' </script>";
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...
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!
13. januar 2004 - 18:35
#8
Prøv at tilføj denne var_dump( $pageHTML ); inden og smid lige resultatet herind.
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.
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> "
13. januar 2004 - 18:45
#11
Det er dine linieskift der er problemet. Ikke <br> men de "håndlavet"
13. januar 2004 - 18:47
#13
fair nok.... og hvordan nakker jeg dem i php kode?
13. januar 2004 - 18:51
#14
nikolajdu>> smid et svar :D
13. januar 2004 - 18:51
#15
oki doki :))
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.
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);
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.
Vi tilbyder markedets bedste kurser inden for webudvikling