Zwei sich gegenseitig beeinflussende Pulldown-Menüs
x-herbert
- javascript
Moin,
ich habe eine recht vertrackte Geschichte in einer Auswahl mit zwei voneinander abhängigen Auswahlmenüs
Menü 1 Menü 2
-alle- -alle-
Ort1 Kat1
Ort2 Kat2
Ort3 Kat3
Ich möchte:
wenn der User eine Auswahl im Menü 1 macht nur die möglichen Kategorien aus Menü 2 angezeigt werden und wenn der User eine Auswahl aus Menü 2 trifft nur die möglichen orte aus M1 angezeigt werden.
Was ich hinbekomme, ist die hirarchische Änderung also z.B. bei Auswahl Ort => Katergorie anzeigen mit onChange="zeigeKat(this.value)" im select von M1 und dass über JavaScript nur noch die möglichen Kategorien im M2 anzeige.
Problem: wenn ich im M2 auch ein onChange habe, wird das ja gestartet, wenn ich den Ort ändere (onChange => JavaScript => Menüwechsel...) und das will nun die Orte wechseln was wiederum das dort implementierte onChange aufruft ... usw.
Auswahlen im M1
Ort1 => Kat1 + Kat2
Ort2 => Kat2 + Kat3
Ort3 => Kat3
demnach Auswahl in M2
Kat1 => Ort1
Kat2 => Ort1 + Ort2
Kat3 => Ort2 + Ort3
Für die Funktionen hätte ich in den Values z.B. folgendes mitgeliefert
<option value="Ort1_1.1.0">Ort1</option> d.h. zeige aus M2 die Werte 1, 2 an 3 nicht
Wie bekomme ich den gegenseitigen Aufruf in den Griff?????!!?!?
Gruss x-herbert
nabend,
ich habe eine recht vertrackte Geschichte in einer Auswahl mit zwei voneinander abhängigen Auswahlmenüs
ich glaube die Kollegen in diesem Beitrag hatten ein vergleichbares Problem.
Guck mal ob die dort angebotenen Lösungen weiterhelfen.
Seppel
hallo,
Ich möchte:
wenn der User eine Auswahl im Menü 1 macht nur die möglichen Kategorien aus Menü 2 angezeigt werden und wenn der User eine Auswahl aus Menü 2 trifft nur die möglichen orte aus M1 angezeigt werden.
Das halte ich nicht für eine gute Idee. Außerdem ist das, falls ich dich denn richtig verstanden habe, keine lineare Hierarchie mehr, sondern es gibt wechselnde Hierarchieebenen. Zwar könnte es möglich sein, mit break zu experimentieren, aber ich sehe nicht so ganz, wie du die jeweils gegenseitigen Änderungen in eine Schleife oder eine Bedingung packen könntest.
Mach es doch anders: bleibe bei deiner linearen Hierarchie und laß bei Änderung bzw. Auswahl in Menü 2 einfach noch ein drittes Menü aufrufen. Das braucht dann keinen "onchange" mehr. Deine Hierarchie sähe dann so aus:
- Orte
- Kategorien
- spezifizierte Orte
Elegant wäre es auch, wenn Menü 2 und Menü 3 überhaupt erst angezeigt werden, sobald im übergeordneten Menü etwas angewählt wurde.
Für die Funktionen hätte ich in den Values z.B. folgendes mitgeliefert
<option value="Ort1_1.1.0">Ort1</option> d.h. zeige aus M2 die Werte 1, 2 an 3 nicht
Ohne Kenntnis deines Scripts sagt das gar nichts über die Funktionsfähigkeit aus.
Wie bekomme ich den gegenseitigen Aufruf in den Griff?
Dir ist bekannt, daß es in SELFHTML die Quickbar gibt, die so etwas Ähnliches demonstriert? Allerdings nutzt sie eine Framekonstruktion. Der verwendete Code läßt sich im Quelltext von http://de.selfhtml.org/navigation/quickbar/liste.htm nachlesen. Er läßt sich, wenn deine Auswahllisten länger werden, auch in Arrays packen. Wie das funktionieren kann, zeigt dir eine meiner Seiten.
Grüße aus Berlin
Christoph S.