waarden met ' worden niet weergegeven
Ik heb een script met een mouseover popup. Het script werkt bijna perfect, want als een waarde (naam) de ' in zich heeft wordt de mouzeover popup niet getoond. Indien dit niet het geval is werkt het perfect.
Hieronder de code die - volgens mij - van belang is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php foreach($rows as $row) {
$naam = stripslashes($row->naam);
$leeftijd = stripslashes($row->leeftijd);
$jarigop = stripslashes($row->jarigop);
$datum_overlijden = stripslashes($row->datum_overlijden);
if($datum_overlijden == "")
{
$overlib = "<table>" .
"<tr><td valign=top>Naam:</td><td>$naam</td></tr>" .
"<tr><td valign=top>Roepnaam:</td><td>$roepnaam</td></tr>" .
"</table>";
echo "<font size=1><b>$jarigop</b> ";
echo "<a onmouseout='return nd();' ";
echo "onmouseover=\"return overlib('$overlib',CAPTION,'INFORMATIE',BELOW,RIGHT);\">";
echo "$naam ";
echo "</a>";
echo "($leeftijd)</font><br/>";
} ?>
$naam = stripslashes($row->naam);
$leeftijd = stripslashes($row->leeftijd);
$jarigop = stripslashes($row->jarigop);
$datum_overlijden = stripslashes($row->datum_overlijden);
if($datum_overlijden == "")
{
$overlib = "<table>" .
"<tr><td valign=top>Naam:</td><td>$naam</td></tr>" .
"<tr><td valign=top>Roepnaam:</td><td>$roepnaam</td></tr>" .
"</table>";
echo "<font size=1><b>$jarigop</b> ";
echo "<a onmouseout='return nd();' ";
echo "onmouseover=\"return overlib('$overlib',CAPTION,'INFORMATIE',BELOW,RIGHT);\">";
echo "$naam ";
echo "</a>";
echo "($leeftijd)</font><br/>";
} ?>
Weet iemand de oplossing?
Het is JavaScript, en ook in JavaScript moet je een enkele quote escapen. Ik zou dus addslashes over die variabele heen gooien.
of de stripslashes verwijderen.
dus addslashes ipv stripslashes er voor zetten?
Gewoon even uittesten. Als magic quotes aanstaat en als die waarden uit een formulier komen, zitten er al slashes in en kan die stripslashes weg. Als de quotes niet automatisch geëscapet worden, mag stripslashes weg (die heeft dan geen zin) en heb je addslashes nodig.
Code (php)
1
<?php echo "onmouseover=\"return overlib('$overlib',CAPTION,'INFORMATIE',BELOW,RIGHT);\">"; ?>
de $overlib tussen '' staat.
Klopt, die enkele quotes moet je ook escapen met een \
het gekke is dat als ik .......(\'$overlib\'...... doe, dan werkt de hele mouseover niet meer.
Code (php)
1
<?php echo 'onmouseover="return overlib(" . $overlib . ",CAPTION,INFORMATIE,BELOW,RIGHT);">'; ?>
Tip: plak eens de broncode hierheen die het resultaat is van dit stukje script?
jan, bedankt voor de tip!!!!! je laatste optie met de addslashes wertk! Merci!
Okee, mooi dat het werkt!
Line: 165 (als je in de broncode kijkt begint hier het script)
Char: 1
Error: object expected
Code: 0
Wat heeft dit te betekenen en hoe kan ik het veranderen?