Avatar billede mac10 Nybegynder
30. september 2008 - 16:48 Der er 20 kommentarer og
2 løsninger

Speciele tegn i OnMouseOver?

Hej

Jeg har hentet et tooltip, hvor jeg udskriver php data i tooltip'et:

<span class="tooltipClass" onmouseover="tooltip.show('><?php echo $msg['msg']; ?>');" onmouseout="tooltip.hide();">Her er et tooltip</span>

Det virker fint hvis $msg['msg'] indeholder:
Dette er en test

Men hvis det indeholder

Dette er en '{test}'

Så viser den fejl. Er det muligt at få decoded det eller lign. til at kunne udskrives?

Ved ikke om denne her skal ligge inde under PHP?
Avatar billede w13 Novice
30. september 2008 - 16:53 #1
Du vel bare køre det gennem funktionen addslashes() i PHP-delen.
Avatar billede olebole Juniormester
30. september 2008 - 17:01 #2
<ole>

Nej, det må være andre fejl, du laver. Hvad skulle ikke fungere ved dette:

<?php
$msg = array("msg" => "{test}");
?>

<script type="text/javascript">
function foo(s) {
    alert(s);
}
</script>

<span class="tooltipClass" onmouseover="foo('<?php echo $msg['msg']; ?>');">Her er et tooltip</span>

/mvh
</bole>
Avatar billede olebole Juniormester
30. september 2008 - 17:02 #3
- men der er en '>' for meget i:
    tooltip.show('><?php echo $msg['msg']; ?>')
Avatar billede w13 Novice
30. september 2008 - 17:03 #4
Jo, Ole, jeg tror, at teksten indeholder:

Dette er en '{test}'

Dvs. at apostrofferne konflikter.
Avatar billede mac10 Nybegynder
30. september 2008 - 17:45 #5
Den virkede ikke helt den med addslashes :S
Avatar billede mac10 Nybegynder
30. september 2008 - 17:46 #6
Har fundet fejlen, den crasher når der bruges " den virker fint med ' eller {}
Avatar billede w13 Novice
30. september 2008 - 18:16 #7
<span class="tooltipClass" onmouseover="foo('<?php echo addslashes($msg['msg']); ?>');">Her er et tooltip</span>

burde stadig løse det.
Avatar billede mac10 Nybegynder
30. september 2008 - 18:21 #8
Hvad er det med foo?

Min hedder onmouseover="tooltip.show...?
Avatar billede w13 Novice
30. september 2008 - 18:30 #9
Ja, så skal foo bare rettes til det. =)
Avatar billede mac10 Nybegynder
30. september 2008 - 19:44 #10
Jamen hvad er den foo funktion? :)
Avatar billede w13 Novice
30. september 2008 - 19:55 #11
Et navn, som Ole har fundet på. Det skal hedde tooltip.show, som den jo rigtigt hedder.
Avatar billede mac10 Nybegynder
30. september 2008 - 21:09 #12
Det virker ikke når $msg['msg'] indeholder " :S
Avatar billede olebole Juniormester
30. september 2008 - 21:11 #13
Så prøv at skrive \\" i stedet
Avatar billede mac10 Nybegynder
30. september 2008 - 22:30 #14
Hvor vil du have jeg skal skrive det ole?
Avatar billede w13 Novice
30. september 2008 - 23:26 #15
I stedet for dine anførselstegn i php-stringen.
Avatar billede mcardle Nybegynder
01. oktober 2008 - 16:21 #16
Det er nemmere at echo hele stien ud, prøv det her :o)

echo "
<span class=\"tooltipClass\" onmouseover=\"foo('" . addslashes($msg["msg"]) .  "');\">Her er et tooltip</span>
";

//mcardle
Avatar billede w13 Novice
01. oktober 2008 - 17:05 #17
Det er nok lidt smag og behag. Personligt synes jeg ikke om at skulle sætte alle de skråstreger ind i min HTML-kode.
Avatar billede mcardle Nybegynder
01. oktober 2008 - 20:02 #18
Ja, det er det vel, men så kunne man bruge singles de steder man ikke lige skulle køre javascript.

echo "
<span class='tooltipClass' onmouseover=\"foo('" . addslashes($msg["msg"]) .  "');\">Her er et tooltip</span>
";

Næsten det samme... Ved jeg godt.

Bare et input. :o)

//mcardle
Avatar billede mac10 Nybegynder
10. november 2010 - 12:26 #19
Lav svar tak
Avatar billede w13 Novice
10. november 2010 - 12:32 #20
Hvem skal have point? :) Her er et svar fra mig, hvis du kunne bruge min hjælp til noget.
Avatar billede mcardle Nybegynder
10. november 2010 - 22:33 #21
Og her er et fra mig :o)
Avatar billede w13 Novice
17. november 2010 - 14:44 #22
Tak for point! :)
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