Hallo,
als allererstes muß ich mich in aller Form für die Länge meines Postings entschuldigen, aber ich wollte mich auf die Schnelle nicht bei einem kostenlosen Provider anmelden.
Es geht um folgenden Code, der, in Abhängigkeit von einer jeweils zuvor getätigten Auswahl, die Auswahllisten entsprechend steuern soll:
<?php
$Film = unserialize (base64_decode (file_get_contents ("../SAMMLUNG/Sammlung_Temp.txt")));
$Option_Kategorie = '<option value="Kategorie">Kategorie ?</option>'; $Option_Detail = '<option value="Kategorie">Detail ?</option>';
$Option_Anfangsbuchstabe = '<option value="Anfangsbuchstabe">Anfangsbuchstabe</option>'; $Option_Genre = '<option value="Genre">Genre</option>'; $Option_FSK = '<option value="FSK">FSK</option>';
$Anfangsbuchstabe = $Option_Kategorie . $Option_Anfangsbuchstabe; $Anfangsbuchstabe_FSK = $Option_Kategorie . $Option_Anfangsbuchstabe . $Option_FSK; $Anfangsbuchstabe_Genre = $Option_Kategorie . $Option_Anfangsbuchstabe . $Option_Genre; $Anfangsbuchstabe_Genre_FSK = $Option_Kategorie . $Option_Anfangsbuchstabe . $Option_Genre . $Option_FSK; $FSK = $Option_Kategorie . $Option_FSK; $Genre = $Option_Kategorie . $Option_Genre; $Genre_FSK = $Option_Kategorie . $Option_Genre . $Option_FSK;
$Status_Filter_1 = ""; $Status_Filter_2 = "disabled"; $Status_Filter_3 = "disabled";
$Filter_1 = $_POST ["Filter_1"]; $Filter_2 = $_POST ["Filter_2"]; $Filter_3 = $_POST ["Filter_3"];
$Kategorie_1 = $_POST ["Kategorie_1"]; $Kategorie_2 = $_POST ["Kategorie_2"]; $Kategorie_3 = $_POST ["Kategorie_3"];
$Status_Filterung = $_POST ["Status_Filterung"];
if (!isset ($Status_Filterung)) { $Status_Filterung = 0;
$Status_Filter_1 = "enabled"; $Status_Filter_2 = "disabled"; $Status_Filter_3 = "disabled"; }
switch ($Status_Filterung) { case 0: { if (!isset ($Filter_1)) { $Optionen_Filter_1 = $Anfangsbuchstabe_Genre_FSK; } else { $Status_Filterung = 1;
$Kategorie_1 = $Filter_1;
switch ($Filter_1) { case "Anfangsbuchstabe": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { $Erstes_Zeichen = substr ($Film[$i]["Titel"], 0, 1);
if (is_numeric ($Erstes_Zeichen)) { $Erstes_Zeichen = "#"; }
if (! in_array ($Erstes_Zeichen, $Array_Temp)) { array_push ($Array_Temp, $Erstes_Zeichen); } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_1 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_1 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; }
case "Genre": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { if (! in_array ($Film[$i]["Genre"], $Array_Temp)) { array_push ($Array_Temp, $Film[$i]["Genre"]); } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_1 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_1 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; }
case "FSK": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { if (!in_array ($Film[$i]["FSK"], $Array_Temp)) { array_push ($Array_Temp, $Film[$i]["FSK"]); } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_1 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_1 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; } } }
break; }
case 1: { $Status_Filterung = 2;
$Optionen_Filter_1 = '<option>' . $Filter_1 . '</option>';
$Status_Filter_1 = "disabled"; $Status_Filter_2 = "enabled";
switch ($Kategorie_1) { case "Anfangsbuchstabe": { $Optionen_Filter_2 = $Genre_FSK;
break; }
case "Genre": { $Optionen_Filter_2 = $Anfangsbuchstabe_FSK;
break; }
case "FSK": { $Optionen_Filter_2 = $Anfangsbuchstabe_Genre;
break; } }
break; }
case 2: { $Status_Filterung = 3;
$Optionen_Filter_1 = '<option>' . $Filter_1 . '</option>';
$Status_Filter_1 = "disabled"; $Status_Filter_2 = "enabled";
$Kategorie_2 = $Filter_2;
switch ($Kategorie_1) { case "Anfangsbuchstabe": { switch ($Kategorie_2) { case "Genre": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { $Erstes_Zeichen = substr ($Film[$i]["Titel"], 0, 1);
if (is_numeric ($Erstes_Zeichen)) { $Erstes_Zeichen = "#"; }
if ($Erstes_Zeichen == $Kategorie_1) { if (! in_array ($Film[$i]["Genre"], $Array_Temp)) { array_push ($Array_Temp, $Film[$i]["Genre"]); } } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_2 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_2 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; }
case "FSK": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { $Erstes_Zeichen = substr ($Film[$i]["Titel"], 0, 1);
if (is_numeric ($Erstes_Zeichen)) { $Erstes_Zeichen = "#"; }
if ($Erstes_Zeichen == $Kategorie_1) { if (! in_array ($Film[$i]["FSK"], $Array_Temp)) { array_push ($Array_Temp, $Film[$i]["FSK"]); } } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_2 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_2 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; } }
break; }
case "Genre": { switch ($Kategorie_2) { case "Anfangsbuchstabe": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { if ($Film[$i]["Genre"] == $Kategorie_1) { $Erstes_Zeichen = substr ($Film[$i]["Titel"], 0, 1);
if (is_numeric ($Erstes_Zeichen)) { $Erstes_Zeichen = "#"; }
if (! in_array ($Erstes_Zeichen, $Array_Temp)) { array_push ($Array_Temp, $Erstes_Zeichen); } } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_1 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_1 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; }
case "FSK": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { if ($Film[$i]["Genre"] == $Kategorie_1) { if (! in_array ($Film[$i]["FSK"], $Array_Temp)) { array_push ($Array_Temp, $Film[$i]["FSK"]); } } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_2 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_2 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; } }
break; }
case "FSK": { switch ($Kategorie_2) { case "Anfangsbuchstabe": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { if ($Film[$i]["FSK"] == $Kategorie_1) { $Erstes_Zeichen = substr ($Film[$i]["Titel"], 0, 1);
if (is_numeric ($Erstes_Zeichen)) { $Erstes_Zeichen = "#"; }
if (! in_array ($Film[$i]["Genre"], $Array_Temp)) { array_push ($Array_Temp, $Film[$i]["Genre"]); } } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_2 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_2 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; }
case "Genre": { $Array_Temp = array ();
for ($i = 0; $i < count ($Film); $i++) { if ($Film[$i]["FSK"] == $Kategorie_1) { if (! in_array ($Film[$i]["Genre"], $Array_Temp)) { array_push ($Array_Temp, $Film[$i]["Genre"]); } } }
array_unique ($Array_Temp); sort ($Array_Temp);
$Optionen_Filter_2 = $Option_Detail;
for ($i = 0; $i < count ($Array_Temp); $i++) { $Optionen_Filter_2 .= '<option value="' . $Array_Temp[$i] . '">' . $Array_Temp[$i] . '</option>'; }
break; }
break; } }
break; } } }
?> <html> <head>
</head> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <select name="Filter_1" size="1" onChange="this.form.submit (); this.blur ();" <?php echo $Status_Filter_1; ?>>
<?php
echo $Optionen_Filter_1;
?>
</select> <select name="Filter_2" size="1" onChange="this.form.submit (); this.blur ();" <?php echo $Status_Filter_2; ?>>
<?php
echo $Optionen_Filter_2;
?>
</select> <select name="Filter_3" size="1" onChange="this.form.submit (); this.blur ();" <?php echo $Status_Filter_3; ?>>
<?php
echo $Optionen_Filter_3;
?>
</select> Kategorie_1: <input name="Kategorie_1" value="<?php echo $Kategorie_1; ?>"><br> Kategorie_2: <input name="Kategorie_2" value="<?php echo $Kategorie_2; ?>"><br> Kategorie_2: <input name="Kategorie_3" value="<?php echo $Kategorie_3; ?>"><br> Status_Filterung: <input name="Status_Filterung" value="<?php echo $Status_Filterung; ?>"> </form> </body> </html>
Folgende Aktionen funktionieren:
Stufe 0 = Initialzustand Stufe 1 = Auswahl Kategorie in Auswahlliste 1 Stufe 2 = Auswahl Detail in Auswahlliste 2 Stufe 3 = Anzeige der verbleibenden Kategorien in Auswahlliste 2
Danach ist die Auswahlliste 1 leer und in Auswahlliste 2 nur die Option "Detail ?" zu sehen, aber keine Details.
Hier meine Anliegen:
- Was muß ich bei der Werteübergaben ändern?
- Wie kann ich den, leider sehr langen, und damit sehr unübersichtlichen Code kompakter notieren?
Vielen lieben Dank für Eure Hilfe
enrico