Anzeige

Inhalt der 2. Selectbox anhand der 1. Selectbox laden


#1
Hallo zusammen,

ich möchte gerne folgendes realisieren, weiß aber gerade nicht genau wie.
Ich vermute, dass ich hier wohl eher jQuery benötigt.

Ich habe eine Selectbox, in der alle Mitglieder einer Seite sind.
Je nachdem, welches Mitglied ich auswähle, soll in der 2. Selectbox daneben die Auswahl ausfallen, also in etwa mit so einem Statement: SELECT * FROM Karte WHERE user_id [ID des Users aus der 1. Selectbox]

Kann mir hier jemand weiterhelfen?

Vielen Dank
 

merzi86

Erfahrenes Mitglied
#2
JQuery brauchst du nicht unbedingt.
Was du aber für so etwas brauchst ist ein sogenannter AJAX Request.
Da macht es zum Teil Sinn JQuery oder ein anderes JavaScript Framework zu nutzen.

Prinzipielles vorgehen ist (egal ob mit oder ohne JavaScript Framework).
Ein onChange-Eventhandler auf die Selectbox setzen. Bei der Funktion des Eventhandlers die ID des ausgewählten Nutzers aus der Selectbox nehmen (Stichwort selectedIndex) und mittels eines Ajax HTTP-Request an eine PHP Datei senden.
In dieser nutzt du dann die ausgelesene ID des Nutzers, um die Daten für die Selectbox auszulesen und die Einträge zu erstellen. Anschließend gibst du die aus, damit wird das im JavaScript nutzbar.

Dann musst du nur noch mittels JavaScript die Options in die 2. Selectbox schreiben.

Hoffe dir nützt das soweit.

Grüße merzi
 
#3
Hallo,

Danke dir für die Antwort.

Glaubst du, es würde noch etwas genauer anhand eines Beispiels gehen?
Mit AJAX habe ich leider aktuell noch nie etwas gemacht.

Danke :)
 

Sempervivum

Erfahrenes Mitglied
#4
Wenn Du jQuery verwendest, wird es sehr einfach:
Javascript:
    <select id="firstsel">
        <option value="val1.1">Erstes</option>
        <option value="val1.2">Zweites</option>
        <option value="val1.3">Drittes</option>
    </select>
    <select id="secondsel">

    </select>
    <script>
        $("#firstsel").on("change", function() {
            var params = {key: this.value};
            $("#secondsel").load("getoptions.php", params);
        });
    </script>
Das Skript getoptions.php muss das HTML mit den Optionen für das zweite Select ausgeben.
In diesem Skript steht das value des ersten Select als Post-Parameter zur Verfügung.
 
#5
Entschuldigung für die späte Antwort, aber jetzt habe ich hier leider doch noch eine Rückfrage.

In der getoptions.php stehen ja dann praktisch alle Optionen drinnen.
Kann dort auch auf den "value" der ersten selectobox zugreifen?

Also dass ich dort praktisch in etwa das Folgende ausführen kann:
"SELECT * FROM Karte WHERE user_id [ID des Users aus der 1. Selectbox]"
Anhand dessen könnte ich mir in einer Schleife dann die Optionen für die Selectbox zusammen bauen.

Vielen Dank
 

Sempervivum

Erfahrenes Mitglied
#6
Selbstverständlich, das Skript, das ich gepostet habe, tut dies bereits:
In diesem Skript steht das value des ersten Select als Post-Parameter zur Verfügung.
Und:
Javascript:
            var params = {key: this.value};
            $("#secondsel").load("getoptions.php", params);
Angenommen, der value des ersten Select ist die User-ID könnte man den Namen anpassen, damit es klarer wird:
Javascript:
            var params = {user_id: this.value};
            $("#secondsel").load("getoptions.php", params);
Und im PHP-Skript dann:
PHP:
$user_id = $_POST['user_id'];
 
Anzeige

Neue Beiträge

Anzeige