Avatar billede gnukki Nybegynder
19. januar 2007 - 20:16 Der er 13 kommentarer og
1 løsning

Escaping tegn

Hej,

Jeg er ved at generere et javascript via noget PHP. Koden skal give dette, hvor 2 bare er et tilfældigt tal:

href='java script:Toggle('2');

Min kode er:

print "...href='java script:Toggle('$row[id]');...";

Hvor ... markerer at der er mere kode

Hvordan får jeg PHP til at indsætte ' i javascriptet?
Avatar billede zynzz Praktikant
19. januar 2007 - 20:22 #1
'java script:Toggle('<?=$row[id]?>');
Avatar billede zynzz Praktikant
19. januar 2007 - 20:23 #2
Fjern lige din print så... :)
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:26 #3
Tjah, det er sikkert også et problem, at ' både bruges i HTML'en og JavaScript'en...

print "...href=\"java script:Toggle('" . $row['id'] . "\");...";

Foretrækker jeg selv.
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:27 #4
Hmm - men da row(id) er et tal, så:

print "...href=\"java script:Toggle(" . $row['id'] . ");...";

Havde desuden skrevet forkert ovenfor :)
Avatar billede gnukki Nybegynder
19. januar 2007 - 20:40 #5
Hmm, det er jo tegnet ' der skal være. Det andet virker ikke. Hele min print er her:

print "<table border=0 cellpadding='1' cellspacing=1><tr><td width='16'><a id='$row[id]' href='java script:Toggle($row[id]);'><img src='img/folder.gif' width='16' height='16' hspace='0' vspace='0' border='0'></a></td><td><b>$row[title]</b></table>";
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:42 #6
print "<table border=0 cellpadding='1' cellspacing=1><tr><td width='16'><a id='{$row['id']}' href='java script:Toggle({$row['id']});'><img src='img/folder.gif' width='16' height='16' hspace='0' vspace='0' border='0'></a></td><td><b>{$row['title']}</b></table>";


Eller hvad mener du?
Avatar billede gnukki Nybegynder
19. januar 2007 - 20:45 #7
Når koden bliver genereret sætter den ikke ' omkring id'et i javascriptet?
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:46 #8
Nej, det skal du selv:

print "<table border=0 cellpadding='1' cellspacing=1><tr><td width='16'><a id='{$row['id']}' href='java script:Toggle('{$row['id']}');'><img src='img/folder.gif' width='16' height='16' hspace='0' vspace='0' border='0'></a></td><td><b>{$row['title']}</b></table>";
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:48 #9
Men - det vil generere

... href='java script:Toggle('2');'> hvilket er et problem. Derfor bør du nok benytte forskellige quotes:

print "<table border=0 cellpadding='1' cellspacing=1><tr><td width='16'><a id='{$row['id']}' href=\"java script:Toggle('{$row['id']}');\"><img src='img/folder.gif' width='16' height='16' hspace='0' vspace='0' border='0'></a></td><td><b>{$row['title']}</b></table>";
Avatar billede gnukki Nybegynder
19. januar 2007 - 20:49 #10
Så afslutter den med java script:Toggle(
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:52 #11
Mærkeligt. Prøv lige:

print "<table border=0 cellpadding='1' cellspacing=1><tr><td width='16'><a id='" . $row['id'] . ""' href=\"java script:Toggle('" . $row['id'] . "');\"><img src='img/folder.gif' width='16' height='16' hspace='0' vspace='0' border='0'></a></td><td><b>" . $row['title'] . "</b></table>";
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:53 #12
Hov

print "<table border=0 cellpadding='1' cellspacing=1><tr><td width='16'><a id='" . $row['id'] . "' href=\"java script:Toggle('" . $row['id'] . "');\"><img src='img/folder.gif' width='16' height='16' hspace='0' vspace='0' border='0'></a></td><td><b>" . $row['title'] . "</b></table>";
Avatar billede gnukki Nybegynder
19. januar 2007 - 20:57 #13
Det virker nu. Tak mester :D

Gider du smide et svar?
Avatar billede jensgram Nybegynder
19. januar 2007 - 20:59 #14
Tjek!
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