Hi Community,
ich komme bei einer Sache einfach nicht weiter.
Ich will alle Dateinamen aus mehreren Ordnern auslesen und diese dann in einem 2D Array speichern. (keine Unterordner) (photos_lists)
Außerdem werden zuvor die Ordnernamen in einem 1D Array extra gespeichert. (gallery_paths)
In der ersten Dimension soll dann der Ordnername stehen und in der zweiten die dazugehörigen Dateien.
In PHP ist das kein Problem. Dass heißt, dass das Erfassen der Dateien und Ordner tatsächlich funktioniert. Jedoch möchte ich das Array nach der Erstellung an Javascript übergeben.
JS soll dann dafür sorgen, dass die Dateien ( Dateien=Bilder) in einer lightbox angezeigt werden.
Für die Übergabe habe ich eine Funktion geschrieben:
Wie an den Kommentaren zu lesen ist, funktioniert die Übergabe super, aber nur innerhalb der 2. For-Schleife. Dort werden dann durch alert die Einträge korrekt wiedergegeben.
Doch sobald man die 2. For-Schleife verlässt, erkennt er das array nicht mehr richtig.
Das seltsame ist, dass es bei dem 1D Array gallery_paths überhaupt keine Probleme in die Richtung gibt.
Ich hatte erst vermutet, dass es was mit der Sichtbarkeit von variablen in JS zu tun hat, doch selbst wenn ich die Variablen-Deklaration in eine extra JS Datei auslagere funktioniert es nicht.
Könnt ihr mir bitte helfen?
ich komme bei einer Sache einfach nicht weiter.
Ich will alle Dateinamen aus mehreren Ordnern auslesen und diese dann in einem 2D Array speichern. (keine Unterordner) (photos_lists)
Außerdem werden zuvor die Ordnernamen in einem 1D Array extra gespeichert. (gallery_paths)
In der ersten Dimension soll dann der Ordnername stehen und in der zweiten die dazugehörigen Dateien.
In PHP ist das kein Problem. Dass heißt, dass das Erfassen der Dateien und Ordner tatsächlich funktioniert. Jedoch möchte ich das Array nach der Erstellung an Javascript übergeben.
JS soll dann dafür sorgen, dass die Dateien ( Dateien=Bilder) in einer lightbox angezeigt werden.
Für die Übergabe habe ich eine Funktion geschrieben:
Code:
function copyToJs($gallerypaths, $photos_lists){
?>
<script>
<?php
$outermax=sizeof($gallerypaths);
echo "var outermax='$outermax';"; ?>
var photos_lists = new Array();
var gallerypaths = new Array();
<?
for($l = 0; $l<$outermax; $l++)
{
echo "var l='$l';";?>
gallerypaths[l] = "<?=$gallerypaths[$l]?>";
<?
}
for($i = 0; $i<$outermax; $i++)
{
echo "var i='$i';";?>
photos_lists[i] = new Array();
<?
$innermax=sizeof($photos_lists[$i]);
for($j = 0; $j<$innermax; $j++)
{
echo "var j='$j';"; ?>
photos_lists[i][j] = "<?=$photos_lists[$i][$j]?>";
//Hier ist alles korrekt
alert(photos_lists[i][j]);
<?
} ?>
//doch hier gibt er nur undefined aus
alert(photos_lists[0][0]); <?
}
?>
// bereits hier ist photos_lists nicht mehr bekannt aber gallerypaths
//alert(gallerypaths[0]);
//alert(photos_lists[0]);
</script>
<?php
}
Wie an den Kommentaren zu lesen ist, funktioniert die Übergabe super, aber nur innerhalb der 2. For-Schleife. Dort werden dann durch alert die Einträge korrekt wiedergegeben.
Doch sobald man die 2. For-Schleife verlässt, erkennt er das array nicht mehr richtig.
Das seltsame ist, dass es bei dem 1D Array gallery_paths überhaupt keine Probleme in die Richtung gibt.
Ich hatte erst vermutet, dass es was mit der Sichtbarkeit von variablen in JS zu tun hat, doch selbst wenn ich die Variablen-Deklaration in eine extra JS Datei auslagere funktioniert es nicht.
Könnt ihr mir bitte helfen?