Javascript mit PHP-Array mischen

Identität

Erfahrenes Mitglied
Ich habe einen Javascript-Schnippsel der ein Tooltip öffnet. Der Inhalt vom Tooltip wird mit PHP aus einer Datenbank gelesen. Das Problem ist, das der Javascript Code damit nicht klar kommt und mir mein Design zerhackt, da der Text zum Teil ohne Tooltip ausgegeben wird, er kommt mit den Semikolons im PHP-Array nicht klar:

Code:
<a href='tooltips.htm' 
            onmouseover="showBallon('<?php echo nl2br($angebot['beschreibung']);?>'); window.status='Tooltip 1'; return true;"
            onmouseout="hideBallon(); return true;">

Wenn ich statt nl2br($angebot['beschreibung']), 123 ausgeben lasse, klappt es ohne Probleme. Also stören ihn scheinbar die '

Könnt ihr mir sagen, wie ich das Problem lösen kann?
 
Aus dem Schnipsel allein läßt sich kein Fehler feststellen, aber, wenn der Code richtig geschrieben ist, kann das grundsätzlich nicht passieren. Der JS Code wird ja erst auf dem Client Rechner ausgeführt und da ist der PHP Teil schon längst abgearbeitet. Das Problem muß also im Inhalt der Variablen liegen.
 
Vielen Dank für deinen Hinweis. Habe es mal so versucht umzusetezen, leider wird bei onmouseover="showBallon(jsvar), die Variable jsvar nicht ausgegeben, sondern es bleibt einfach das jsvar im Quelltext stehen, also anscheinend erkennt er die Variable nicht. Was ist hier falsch? Leider kenne ich mich nicht mit Javascript aus, blöderweise :-(

Code:
            <script type="text/javascript">
            <!--
            jsvar='<?php echo $data;?>'; 
            jsvar=unescape('<?php echo rawurlencode($php_var);?>');
            //-->
            </script>
                <a  href="#" onmouseover="showBallon(jsvar); window.status='Tooltip 1'; return true;" onmouseout="hideBallon(); return true;">
                <img src="../images/angebote/<?php echo $angebot['id'];?>.jpg" alt="<?php echo $angebot['angebot'];?>" class="left bordered" />
            </a><br>
 
Wie heisst denn nun deine Variable? $data oder $php_var

Auf jeden Fall, wenn $data diese störenden Zeichen enthält (da reicht schon ein Zeilenumbruch) gibt es einen JS-Fehler, weil du bei der 1. Zuweisung an jsvar kein rawurlencode() verwendet hast.

Dass bei
Code:
onmouseover="showBallon(jsvar)"
das jsvar so im Quelltext steht, ist korrekt...es ist ja eine Referenz auf die zuvor definierte Variable.

Hier mal ein Beispiel:
Code:
<?php

$php_var=
<<<STR
Fiese Zeichenkette mit allerlei 
gemeinen    Zeichen drin
*' " & <<< 
>>>>>> @ % $ 
STR;

?>
<script type="text/javascript">
<!--
function showBallon(s)
{
  alert(s);
}
jsvar=unescape('<?php echo rawurlencode($php_var);?>');
//-->
</script>
<a  href="#" onmouseover="showBallon(jsvar); window.status='Tooltip 1'; return true;">hover</a>
 

Neue Beiträge

Zurück