trautmann: php arrays in javascript verwenden

Hi,

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.

danke schon jetzt

mfg

Trautmann

  1. 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

    1. Hi,

      danke für die schnelle antwort
      mir gefällt das erste bsp sehr gut aber wie kann ich bestimmen welcher teil des arrays jetzt der js-variable zugewiesen wird?

      1. Hallo,

        danke für die schnelle antwort
        mir gefällt das erste bsp sehr gut aber wie kann ich bestimmen welcher teil des arrays jetzt der js-variable zugewiesen wird?

        Naja, eigentlich immer der ganze. Wenn Du nur einen Teil einer JS-Variable zuweisen willst, musst Du das halt erstmal in PHP selbst rausfiltern (d.h. Dir einen zweiten Array zusammenbasteln, der nur das enthält, was Du JS übergeben willst).

        Viele Grüße,
        Christian

        1. so danke alles klar funktioniert jetzt ;)

          danke für die hilfe

          mfg

          trautmann

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

    wies siehts mit einem xml-schnipsel aus, den du prozedural abarbeitest? oder an anderes beliebiges austauschformat wo jeweils schnittstellen für php UND js extieren - json zb?