
29725
04.06.2017
Dropdown wird dynamisch mit Tables aus Datenbank gefüttert - Troubles bei Erzeugung von Submenü
Guten Tag,
Es existiert eine Datenbank (MariaDB / MySQL). Die Tabellen werden dynamisch in einem Dropdown-Menü erzeugt. Alles funktioniert soweit einwandfrei, lesen-schreiben-berechtigungen.
Mein Problem ist nun folgendes:
Bei der dynamischen Erzeugung des Dropdowns (Also alle vorhandenen Tabellen aus der Datenbank) soll ein zweites Dropdownmenü generiert werden - nämlich soll entsprechend der Auswahl aus dem ersten Dropdownmenü eine Unterkategorie auswählbar sein - und darauf auch noch ein drittes Dropdown mit einem weiteren Filter. Wie bereits erwähnt funktioniert die dynamische Erzeugung des ersten Dropdowns (mit den Namen der Tabellen aus der Datenbank) - Mit der Auswahl lässt sich aber nicht weiterarbeiten....
Meine Überlegung ist es entweder mit einer Javascript-"onchange=this.value" zu arbeiten da es sich ja auch um ein Clientseitiges Verfahren handelt. Oder die Anfrage über php mit einer einfachen if-else Abfrage über isset(). Ich komme allerdings nicht drauf wie ich den Dropdowninhalten eine Variable zuweisen kann. Welche Variante hältst Du denn für die Bessere ? Stecke seit etwa 1 Monat bei diesem Punkt fest und komme nicht vorwärts ... Hast du evtl. eine Lösung ? Ursprünglich war meine Überlegung dass sich "name='Auswahl_1'" in der if-Schleife als Variable ansteuern lässt, das liegt so nahe für mich, da eine direkte Eingabe im Code (wie hier zB in Auswahl_3 mit Mathematik und Grundrechnungsarten dargestellt) per POST bzw. GET korrekt von Ausgabe.php verarbeitet werden. Soll heißen die Auswahl aller 3 Dropdowns wird per Submit() korrekt an Ausgabe.php übergeben wenn ich die Vorauswahl im direkt im Code treffe. Vermutlich liegt hier auch mein entscheidender Logik-Fehler....
Danke schon mal im Voraus für Eure Hilfe! Falls mehr Informationen gebraucht werden, bitte bitte einfach bescheid sagen....
Beim Thema bin ich mir echt nicht sicher wo ich es hintun soll - Eigentlich gehört es ja in PHP/Javascript/MySQL/Webentwicklung aber entsprechend meinem derzeitigen Code stellt es sich wohl als Datenbank-Anfragen-Frage dar....
Hier ist mein derzeit vorhandener Code:
Meine derzeitige Ausgabe sieht so aus:
Es existiert eine Datenbank (MariaDB / MySQL). Die Tabellen werden dynamisch in einem Dropdown-Menü erzeugt. Alles funktioniert soweit einwandfrei, lesen-schreiben-berechtigungen.
Mein Problem ist nun folgendes:
Bei der dynamischen Erzeugung des Dropdowns (Also alle vorhandenen Tabellen aus der Datenbank) soll ein zweites Dropdownmenü generiert werden - nämlich soll entsprechend der Auswahl aus dem ersten Dropdownmenü eine Unterkategorie auswählbar sein - und darauf auch noch ein drittes Dropdown mit einem weiteren Filter. Wie bereits erwähnt funktioniert die dynamische Erzeugung des ersten Dropdowns (mit den Namen der Tabellen aus der Datenbank) - Mit der Auswahl lässt sich aber nicht weiterarbeiten....
Meine Überlegung ist es entweder mit einer Javascript-"onchange=this.value" zu arbeiten da es sich ja auch um ein Clientseitiges Verfahren handelt. Oder die Anfrage über php mit einer einfachen if-else Abfrage über isset(). Ich komme allerdings nicht drauf wie ich den Dropdowninhalten eine Variable zuweisen kann. Welche Variante hältst Du denn für die Bessere ? Stecke seit etwa 1 Monat bei diesem Punkt fest und komme nicht vorwärts ... Hast du evtl. eine Lösung ? Ursprünglich war meine Überlegung dass sich "name='Auswahl_1'" in der if-Schleife als Variable ansteuern lässt, das liegt so nahe für mich, da eine direkte Eingabe im Code (wie hier zB in Auswahl_3 mit Mathematik und Grundrechnungsarten dargestellt) per POST bzw. GET korrekt von Ausgabe.php verarbeitet werden. Soll heißen die Auswahl aller 3 Dropdowns wird per Submit() korrekt an Ausgabe.php übergeben wenn ich die Vorauswahl im direkt im Code treffe. Vermutlich liegt hier auch mein entscheidender Logik-Fehler....
Danke schon mal im Voraus für Eure Hilfe! Falls mehr Informationen gebraucht werden, bitte bitte einfach bescheid sagen....
Beim Thema bin ich mir echt nicht sicher wo ich es hintun soll - Eigentlich gehört es ja in PHP/Javascript/MySQL/Webentwicklung aber entsprechend meinem derzeitigen Code stellt es sich wohl als Datenbank-Anfragen-Frage dar....
Hier ist mein derzeit vorhandener Code:
<body>
<?php
include_once('./connectToMYSQL.php');
$SQLInsert = "SHOW TABLES FROM $MYSQLDB";
$Temp = "";
if ($Tables = mysqli_query($DB,$SQLInsert)) {
echo"<form action='./Ausgabe.php' method='get'><label><select onchange='' name='Auswahl_1'>";
$i=0;
while($daten = mysqli_fetch_row($Tables)){
echo "<option value='$daten'>{$daten}</option>\n<br>";
$i++;
}
echo"</select><br>";
$SQLQuery_Thema = "SELECT DISTINCT Thema FROM $Auswahl_1 ORDER BY Thema ASC";
$Topic = mysqli_query($DB,$SQLQuery_Thema);
echo "<select name='Auswahl_2'>";
while($entrys_Thema = mysqli_fetch_row($Topic)){
echo"<option value='$entrys_Thema'>{$entrys_Thema}</option>\n<br>";
}
echo"</select><br>";
$SQLQuery_Filter = "SELECT DISTINCT Filter1 FROM Mathematik WHERE Thema='Grundrechnungsarten' ORDER BY Filter1 ASC";
$Filter = mysqli_query($DB,$SQLQuery_Filter);
echo "<select name='Auswahl_3'>";
while($entrys_Filter = mysqli_fetch_row($Filter)){
echo"<option value='$entrys_Filter'>{$entrys_Filter}</option>\n<br>";
}
echo"</select><input type='submit' value='Start'></label></form>";
$anzahl=mysqli_num_rows($Tables);
printf("Es stehen %d Rubriken zur Auswahl.", $anzahl);
mysqli_free_result($Tables);
}
else { echo "Auflistung der Datenbank-Rubriken fehlgeschlagen!" . $DB->error;}
mysqli_close($DB_DB);
?>
</body>
Meine derzeitige Ausgabe sieht so aus:

Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 339792
Url: https://administrator.de/forum/dropdown-wird-dynamisch-mit-tables-aus-datenbank-gefuettert-troubles-bei-erzeugung-von-submenue-339792.html
Ausgedruckt am: 03.05.2025 um 02:05 Uhr
2 Kommentare
Neuester Kommentar

Hi.
Würde ich mit Ajax machen.
Ein extra neu Laden der Seite ist damit dann überflüssig und wäre ja sowieso auch nicht mehr "State of the Art".
Schau hier mal im Forum, da gibt es einige Beispiele zu Ajax/jQuery &Co.
Gruß

Würde ich mit Ajax machen.
- Eine Backend.php schreiben an die man via Post den Namen der gewünschten Tabelle schickt und welche dann die DB Abfrage macht und dann die Daten als JSON zurückliefert.
- Im Frontend dann beim onChange-Event der Combos den Namen der Tabelle via POST an die backend.php schicken und das JSON in ein Datenobjekt wandeln und mit for-Schleife ins Dropdown schreiben.
Ein extra neu Laden der Seite ist damit dann überflüssig und wäre ja sowieso auch nicht mehr "State of the Art".
Schau hier mal im Forum, da gibt es einige Beispiele zu Ajax/jQuery &Co.
Gruß
Stecke seit etwa 1 Monat bei diesem Punkt fest
Wow, das muss man auch erst mal schaffen