Hallo und guten Abend,
einem werten Kumpel habe ich es zu verdanken, dass ich an einem Problem festhänge, das, so befürchte ich, sicherlich recht einfach zu lösen ist, aber ich komme einfach nicht auf die Lösung.
Ich baue, in Abhängigkeit übergebener Variablen, mein Haupt- und das zugehörige Untermenü dynamisch auf.
Hier die Arrays:
$PunkteHauptmenue = array ("Startseite", "WirUeberUns", "Ruestzeug", "Waffen", ...);
$PunkteUntermenue[1] = array ("BitteWaehlen", "WirUeberUns", "Termine", "Fotos");
$PunkteUntermenue[2] = array ("BitteWaehlen", "AusStoff", "AusLeder", "AusMetall");
$PunkteUntermenue2 = array ("BitteWaehlen", "Zurueck", "FuerDenKopf", "FuerDenOberkoerper", ...);
$PunkteUntermenue[3] = array ("BitteWaehlen", "Speere", "Haemmer", ...);
$PunkteUntermenue[4] = array ("BitteWaehlen", "Muetzen", "Tuniken", "Hosen", "Maentel", "...);
$PunkteUntermenue[5] = array ("BitteWaehlen", "Mjoellnir", "AusBernstein", "Fibeln", ...);
$PunkteUntermenue[6] = array ("BitteWaehlen", "LichtFeuer", "Mobiliar", "Sonstiges");
$PunkteUntermenue[7] = array ("BitteWaehlen", "Leder", "Stoffe", "SchliessenKnebel", ...);
$PunkteUntermenue[8] = array ("BitteWaehlen", "Bezahlung", "Versand", "Rücksendung", ...);
Ich habe für mein Posting weitere Arrayelemente weggelassen und deren Vorkommen durch "..." verdeutlicht, im "echten" Skript sind die Arrays natürlich alle vollständig.
Wähle ich einen Hauptmenüpunkt aus, dann wird das entsprechende Untermenü angezeigt.
Mit nur einer Ebene funktioniert es auch ohne Probleme.
Beim Abfrage des Untermenues mit dem Index 2 und dem jeweils weiteren Untermenü klappt es nicht.
Zur gewünschten Anzeige der Menüs nach Anwählen des Hauptmenüpunktes "Rüstzeug":
+--------------------+
| Hauptmenü |
+--------------------+
| Startseite |
| Wir über uns |
| [Rüstzeug] |
| Waffen |
| ... |
+--------------------+
+--------------------+
| Untermenü |
+--------------------+
| Bitte wählen |
| Aus Stoff |
| Aus Leder |
| Aus Metall |
+--------------------+
Nach Anklicken, beispielsweise des Untermenüpunktes "Aus Leder" will ich folgende Anzeige:
+--------------------+
| Hauptmenü |
+--------------------+
| Startseite |
| Wir über uns |
| [Rüstzeug] |
| Waffen |
| ... |
+--------------------+
+--------------------+
| Untermenü |
+--------------------+
| Bitte wählen |
| Zurück |
| Für den Kopf |
| Für den Oberkörper |
| ... |
+--------------------+
Hier der php-Code, der für den korrekten Aufbau des Untermenüs, auf mein Problem gemünzt, sorgen soll (es aber leider nicht tut):
if ($i == 2) // $PunkteHauptmenue[2] mit dem Wert "Ruestzeug" wurde ausgewählt
{
if (isset ($Trigger)) // Anzeige entweder des Einstiegsuntermenüs ("AusStoff", "AusLeder", "AusMetall") oder des weiteren Untermenüs
{
for ($y = 0, $z = count ($PunkteUntermenue2); $y < $z; $y++) // Hier möchte ich das jeweilige Array in das Array $Array
$Array[$y] = $PunkteUntermenue2[$y]; // umkopieren, da ich danach mit diesem weiterarbeiten werde
}
}
else // Es wurde irgendein anderer Hauptmenüpunkt ausgewählt
{
for ($y = 0, $z = count ($PunkteUntermenue[$i]); $y < $z; $y++)
$Array[$y] = $PunkteUntermenue[$i][$y];
}
if ($Untermenue == 0) // Es wurde noch kein Untermenüpunkt ausgewählt,...
$Start = 0; // ..., somit Start bei "Bitte wählen"
else // Es wurde ein Untermenüpunkt gewählt
$Start = 1; // Wegfall des Elements "BitteWaehlen"
for ($k = $Start, $l = sizeof ($Array); $k < $l; $k++) // Zugehöriges Array "Untermenue" durchlaufen
{
... Ausgabe ...
}
Der Parameter "Trigger" wird bei der Ausgabe den Links des Einstiegsuntermenüs angehängt, aber so weit komme ich nicht mal, da das Array $Array "NULL(0) NULL" ist.
Dies bedeutet für mich, dass das Umkopieren des jeweiligen Arrays ins Array $Array nicht funktioniert.
Aber warum klappt das so nicht?
Wie könnte ich den Code zudem, wenn er denn mal funktioniert, schlanker programmieren?
Vielen Dank für eure Hilfe und Gruß,
Enrico