PHP Vars an Javascript-Array übergeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Vars an Javascript-Array übergeben

    Ich kriege die PHP-Vars nicht in JavaScriptArrays
    ich habe die Abfrage an sich nicht aufgeführt.
    $Branchen_records ist die anzahl der Zeilen

    Kann mir einer weiterhelfen das funzt nicht, kann mir einer ein Beispiel geben wo es funzt.

    <script language="JavaScript">
    var i=0;
    var anzahl=<? echo $Branchen_records?>;
    </script>

    <?
    while (list($L_Branchen_Nr,$L_Kurzbeschreibung,$L_Langbeschreibung)=mysql_fetch_row($Branchen_erg))
    {
    ?>
    <script language="JavaScript">
    var JS_S_Branchen= new Array(<? echo $Branchen_records ?>);
    var JS_Kurzbeschreibung=new Array(<? echo $Branchen_records ?>);
    var JS_Langbeschreibung=new Array(<? echo $Branchen_records ?>);

    JS_S_Branchen[i]=<? echo $L_Branchen_Nr ?>;
    JS_Kurzbeschreibung[i]="<? echo $L_Kurzbeschreibung ?>";
    JS_Langbeschreibung[i]="<? echo $L_Langbeschreibung ?>";
    i++;

    </script>
    <?
    }


  • #2
    Jedes

    echo $arrayname

    ersetzen durch

    for ($i=0;$i<=sizeof($arrayname)-1;$i++)
    {
    echo '"'.$arrayname[$i].'"';
    if ($i<sizeof($arrayname)-1) echo ',';
    }

    Wie üblich gibt's hier bestimmt auch eine einfachere Lösung (hoffe zumindest, dass die stimmt, hab es nicht genau überprüft).

    EDIT: So, kurz nach dem Posten ist es mir nun eingefallen...

    echo '"'.implode('","',$arrayname).'"';


    [Editiert von Sky am 19-11-2001 um 15:17]

    CAT Music Files

    Kommentar


    • #3
      mal abgesehen vom Beispiel von Sky- dein ursprüngliches Skript war ja nicht so falsch. Die Array-Definition raus aus der while-Schleife und dann die DB-Ergebnisse den dem Array zuweisen:
      Code:
      <script language="JavaScript"> 
      var i=0; 
      var anzahl=<? echo $Branchen_records?>; 
      var JS_S_Branchen= new Array(<? echo $Branchen_records ?> ); 
      var JS_Kurzbeschreibung=new Array(<? echo $Branchen_records ?> ); 
      var JS_Langbeschreibung=new Array(<? echo $Branchen_records ?> ); 
      
      <? 
      while (list($L_Branchen_Nr,$L_Kurzbeschreibung,$L_Langbeschreibung)=mysql_fetch_row($Branchen_erg)) 
      	{ 
      ?> 
      JS_S_Branchen[]=<? echo $L_Branchen_Nr ?>; 
      JS_Kurzbeschreibung[]="<? echo $L_Kurzbeschreibung ?>"; 
      JS_Langbeschreibung[]="<? echo $L_Langbeschreibung ?>"; 
      <?	}  ?>
      </script>
      müßte eigentlich funktionieren und ist auch schön überschaubar...

      Kommentar


      • #4

        Das geht bestimmt so, deine Funktion ist ziemlich kompliziert.
        Ich mein eigentlich dass es so gehen müßte:

        JS_S_Branchen[i]=<? echo $L_Branchen_Nr ?>;
        JS_Kurzbeschreibung[i]=<? echo $L_Kurzbeschreibung ?>;
        JS_Langbeschreibung[i]="<? echo $L_Langbeschreibung ?>";

        davon bin ich fest überzeugt, jetzt muss man hergehen und gucken wie JavaScript mit dem i in den eckigen Klammern umgeht.

        Ich habe einen test gemacht und so wie es scheint mag JavaScript die Variablen in den eckigen Klammern nicht.

        JS_Kurzbeschreibung[i]=i;

        Kannst du das nachvollziehen?

        Kommentar


        • #5
          Echt das ist ja der Hammer wie so blöd wie ich kann keiner sein!

          Danke

          Kommentar


          • #6
            Echt das ist ja der Hammer wie so blöd wie ich kann keiner sein!



            Ich habe die Zählvariable aus der while schleife herausgeschrieben, aber ich blödmann komm natürlich nicht darauf dass die Array-Definitionen auch heraus müssen


            Danke nochmals

            Kommentar

            Lädt...
            X