Optionen einer SELECT-Liste ausblenden

Ralfnator

Grünschnabel
Hallo zusammen,

folgendes Problem:

In SELECT-Liste 1 werden aus einer DB-Tabelle Personen als Optionen generiert. Jede Person gehört zu 1 von 4 Personengruppen. Die jeweilige Personengruppe wird mit einem DATA-Attribut "status" (1-4) übergeben, als Value wird die ID übergeben.

In SELECT-Liste 2 wird aus einer DB-Tabelle eine Produktliste erzeugt. Dabei existieren 4 Produktkategorien, der jeweilige Kategoriewert wird wieder mittels DATA-Attribut "category" (1-4) übergeben.

SELECT-Liste 2 wird erst "enabled", wenn eine Person in SELECT-Liste 1 ausgewählt wurde. Wenn eine Person in Liste 1 ausgewählt wurde sollen in Liste 2 eben nur die Produkte angezeigt werden, die seiner Statusgruppe zugeordnet sind, sprich Status==Kategorie.

Problem: Über Javascript kann ich alle notwendigen Werte auslesen und vergleichen, jedoch die Optionen der Liste 2 nur "disablen". Da die Liste dann aber immer noch sehr lang ist reicht das nicht, die Optionen müssen ganz ausgeblendet werden.

Über die mysql-query der Liste 2 entsprechend zu selektieren ist ja theoretisch kein Ding, aber zum Zeitpunkt der Befüllung von Liste 2 hat der Nutzer ja noch keine Auswahl in Liste 1 getroffen. Rein über PHP und mysql geht es also auch nicht.

Hat jemand eine zündende Idee? Vielen Dank im Voraus.
 
Das geht nur mit JavaScript.

Du kannst mit JavaScript auch einzelne Optionen komplett aus dem Select entfernen:

Code:
var x = document.getElementById("mySelect");
x.remove(x.selectedIndex);

Allerdings sind diese Options dann auch nicht mehr da, wenn man in Select1 was Neues auswählt.

Die Lösung lautet: AJAX
Sobald was in Select1 ausgewählt wird, wird der Inhalt von Select2 per AJAX vom PHP-Script abgeholt und per JavaScript wird Select2 dann gefüllt.
 
Zurück