Enrico: Dynamische Erzeugung zweier abh. Select-Felder

Beitrag lesen

Sodalla, wieder einmal benötige ich Eure Hilfe.

Ein Verzeichnis samt Unterverzeichnisse auszulesen und die zurückgegebenen Pfadangaben zu kürzen funktioniert mittlerweile - endlich - einwandfrei.

Die ("bereinigten") Angaben sehen beispielsweise folgendermassen aus:

Enrico
Enrico131Tina
Familie_2Big1Brother21Christian
Familie_2Big1Brother21Christian131SchwAEgerin1Irmgard
Freunde_Armin
Freunde_Armin131Manuela
Freunde_Manuela
Freunde_Marita
Haustiere_Hamster12Snoopy2
Haustiere_Kater12Blacky2
Haustiere_Kater12Peterl2

Bitte nicht über die verwendeten Zahlen wundern. Diese haben nur den Zweck, später gegen bestimmte Zeichen ersetzt zu werden und wurden nur eingebaut, um Schwierigkeiten mit den Ordnernamen durch Verwendung von Sonderzeichen zu vermeiden.

Der Vollständigheit halber und um des besseren Verständnisses Willen:

Enrico131Tina                     wird zu   Enrico & Tina
Familie_2Big1Brother21Christian   wird zu   Familie_"Big Brother" Christian

Nun geht es mir darum, die zurückgegebenen und "bereinigten" Angaben zu zerlegen und in Select-Felder für die Auswahl der gewünschten Fotogalerie einzubauen.

Füllungen der voneinander abhängigen Select-Felder nach der Formatierung der "bereinigten" Pfadangaben:

Select-Feld 1 -+- Select-Feld 2
Enrico         |
Familie        | "Big Brother" Christian
               | "Big Brother" Christian & Schwägerin Irmgard
Freunde        | Armin
               | Armin & Manuela
               | Manuela
               | Marita
Haustiere      | Hamster "Snoopy"
               | Kater "Blacky"
               | Kater "Peterl"

Prinzipiell geht es mir nun darum, die Pfadangabe anhand des Trennzeichens "_" zu splitten, den vorderen Teil - sofern im ersten Select-Feld noch nicht vorhanden - dem ersten Select-Feld zuzuordnen und den Rest, als aufzuzeigender Inhalt, sobald die entsprechende Auswahl im ersten Select-Feld getroffen wurde, dem zweiten Select-Feld zuzuordnen.

Nur, wie mache ich das ?

Das Script zum Einlesen und Bereinigen der Pfadangaben sieht wie folgt aus:

<?php

function VerzeichnisEinlesen ($Ausgangsverzeichnis)
  {
    $Unterverzeichnisse = array();

if (is_dir ($Ausgangsverzeichnis))
    {
      $VerzeichnisZeiger = opendir ($Ausgangsverzeichnis);

while ($AktuellesElement = readdir ($VerzeichnisZeiger))
      {
        $NaechstesVerzeichnis = $Ausgangsverzeichnis . '/' . $AktuellesElement . '/';

if ((is_file ($NaechstesVerzeichnis) == true) | ($AktuellesElement == ".") | ($AktuellesElement == ".."))
          continue;

array_push ($Unterverzeichnisse, $NaechstesVerzeichnis);
        array_push ($Unterverzeichnisse, VerzeichnisEinlesen ($NaechstesVerzeichnis));
      }
    }
    return ($Unterverzeichnisse);
  }

function VerzeichnisseAusgeben ($VerzeichnisInhalt)
  {
    for ($a = 0; $a < count ($VerzeichnisInhalt); $a++)
    {
      $VerzeichnisInhalt [$a] = str_replace ("pic/pic/klein//", "", $VerzeichnisInhalt [$a]);
      $VerzeichnisInhalt [$a] = str_replace ("/", "", $VerzeichnisInhalt [$a]);

if (is_array ($VerzeichnisInhalt [$a]))
        VerzeichnisseAusgeben ($VerzeichnisInhalt [$a]);
      else
        echo $VerzeichnisInhalt [$a] . '<br>';
    }
  }

$VerzeichnisInhalt = VerzeichnisEinlesen ("pic/pic/klein/");
  VerzeichnisseAusgeben ($VerzeichnisInhalt);

?>

Nochmals vielen Dank im Voraus für Eure Bemühungen.

Gruss, Enrico