# Javascript mit PHP-Array mischen



## Identität (27. Mai 2010)

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:


```
<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?


----------



## Sprint (27. Mai 2010)

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.


----------



## Sven Mintel (28. Mai 2010)

Moin,



Identität hat gesagt.:


> Könnt ihr mir sagen, wie ich das Problem lösen kann?



Klar: http://www.tutorials.de/forum/webma...n-ich-php-variablen-javascript-verwenden.html


----------



## Identität (28. Mai 2010)

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 :-(


```
<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>
```


----------



## Sven Mintel (28. Mai 2010)

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 
	
	
	



```
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:
	
	
	



```
<?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>
```


----------

