Christian Seiler: php arrays in javascript verwenden

Beitrag lesen

Hallo,

ich habe garade aus http://www.php-faq.de/q-funktion-php-js.html erfahren wie man php-variablen in javascript verwendet, aber kann man so auch arrays auslesen?

Nicht mit einer Zahl in den [] sonder mit einer Variable darin die sich noch steigern soll.

also vereinfacht brauche ich eine javascript-schleife die mir jedem durchgang einen anderen teil eines arrays ausgibt.

Neuere PHP-Versionen bieten Dir json_encode() an, d.h. (um das Beispiel der FAQ abzuändern:)

<script type="text/javascript" language="JavaScript">  
<?php  
[code lang=php]$php_array = array(1,2,4,5);  
printf("js_var = %s;\n",  
        json_encode($php_array)  
      );

?>
</script>[/code]

Alternativ kannst Du - wenn Du weißt, dass das Array nur eine Ebene hat (also direkt Strings enthält und keine weiteren Arrays), auch folgendes machen:

<?php  
// Hilfsfunktion zum JS-Escapen, siehe das von Dir verlinkte Beispiel  
function jsescape ($str) {  
  return strtr(addslashes($str), array("\r" => '\r', "\n" => '\n'));  
}  
?>
<script type="text/javascript" language="JavaScript">  
<?php  
[code lang=php]$php_array = array(1,2,4,5);  
printf("js_var = [\"%s\"];\n",  
        join('", "', array_map ('jsescape', $php_array))  
      );

?>
</script>[/code]

Viele Grüße,
Christian