Dropdown-Werte anhand der Auswahl in einem 2. Dropdown filtern

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Benutzeravatar
Homer71
Beiträge: 19
Registriert: 27.10.2014, 14:13

Dropdown-Werte anhand der Auswahl in einem 2. Dropdown filtern

Beitrag von Homer71 » 20.01.2015, 17:12

Hallo Leute,

hier habe ich ein etwas kniffeligeres Problem und konnte dazu nichts über die Suchfunktion ermitteln.

Folgendes Problem:
Ich hab ein Formular mit 2 Dropdown-Listen.

DD1 hat folgende Werte:
"1400 - Meister", "1400"
"1600 - Fachhandwerker", "1600"
"1800 - Monteur", "1800"

d.h. wird der 1. Eintrag "1400 - Meister" ausgewählt, hat das DD den Wert "1400".

Nun habe ich noch eine 2. Dropdown-Liste. Diese enthält folgende Werte:
"4711 | Faxgerät  | 1400", "4711"
"4712 | Telefon   | 1600" , "4712"
"4713 | Stuhl     | 1400" , "4713"
"4714 | Tisch     | 1800" , "4714"
"4715 | Telefon   | 1600" , "4715"
"4716 | Papier    | 1400" , "4716"
"4717 | Monitor   | 1800" , "4717"

Die Einträge dieser 2 Dropdown-Liste sollen nun gefiltert werden je nachdem, was im 1. Dropdown ausgewählt ist. Wenn im 1. DD ein Wert ausgewählt wird, dann sollen im 2. DD nur die Einträge zur Auswahl stehen, bei denen im Anzeigetext die letzten 4 Stellen mit dem Wert aus DD1 übereinstimmen.

Ich habe mal ein PDF mit der Problemstellung angehängt.

Ich habe leider noch relativ wenig Erfahrung in Javascript.
Kann mir evtl. jemand helfen und zeigen, wie ich das gelöst bekomme?

Vielen Dank im Voraus.

P.S. : Das Forum hier ist wirklich mal sehr hilfreich. gerade für LCD-EInsteiger wie mich.

Viele Grüße
Andy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Dropdown-Werte anhand der Auswahl in einem 2. Dropdown filtern

Beitrag von armine » 20.01.2015, 17:52

Hallo Andy,

erarbeite dir mal http://www.acronaut.de/forum45/3230.html

vg armine

Benutzeravatar
Homer71
Beiträge: 19
Registriert: 27.10.2014, 14:13

Dropdown-Werte anhand der Auswahl in einem 2. Dropdown filtern

Beitrag von Homer71 » 20.01.2015, 18:34

Hallo armine,

ich hab mich mal durch das Beispiel durchgearbeitet. Das ist gut verständlich und nachvollziehbar. 

Leider treffen bei meinem Problem folgende Rahmenbedingungen zu:

Die Anzahl der Einträge in Dropdown1 und Dropdown2 variieren von Aufruf zu Aufruf (ich verwende LDC für SAP, die Auswahlwerte kommen aus SAP-Tabellen. Es können mal mehr , mal weniger Werte vorkommen).

Somit kann ich den Weg über den Abwahl-Array (wie in dem Beispiel) leider nicht gehen. Dies setzt ja voraus, dass ich den Inhalt der Dropdown-Felder schon kenne.

Ich denke, ich muss bei meinem Problem so vorgehen:
1. In Dropdown1 wird ein Wert ausgewählt. (Beispiel: 1400)
2. Mit diesem Wert muss ich nun die Dropdownliste2 durchforsten und alle Werte, deren Anzeigetext NICHT mit "1400" endet, eliminieren.

Hast du eine Idee, wie ich das bewerkstelligen kann?

LG Andy

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Dropdown-Werte anhand der Auswahl in einem 2. Dropdown filtern

Beitrag von armine » 21.01.2015, 15:21

Hallo Andy,

mit "1." hast du recht, aber ich werde doch nicht alles in DDL2 einfügen, um dann wieder etwas zu löschen.

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Homer71
Beiträge: 19
Registriert: 27.10.2014, 14:13

Dropdown-Werte anhand der Auswahl in einem 2. Dropdown filtern

Beitrag von Homer71 » 23.01.2015, 11:39

Hi armine,

das Problem ist:
die Dropdowns werden aus SAP heraus gefüllt. Bei jedem Lieferanten sind die Werte zudem noch unterschiedlich. Deshalb muss ich so vorgehen:
  1. Im ersten Dropdown wird ein Wert ausgewählt
  2. Im 2. Dropdown werden nun alle Einträge eliminiert, die nicht zu dem ausgewählten Wert in DD1 passen.
Ich kann leider nicht per addItem im initialize-Ereignis die Werte hinzufügen, so wie du es gemacht hast. Außerdem muss ich den Anzeigewert des 2. DD auf die letzten 4 Stellen prüfen, ob diese mit dem Wert aus dem 1. DD übereinstimmen, da die Datenstruktur nicht so ist, dass der Wert aus dem 1. DD auch im 2. DD steht.


Eine umständliche Lösung habe ich basteln können. Du findest sie hier: http://www.acronaut.de/forum34/5728.html

Dabei ist leider ein neues Problem aufgetaucht, dass ich in dem neuen Thread aufgenommen habe.

Gibt es für diese Voraussetzungen (und Einschränkungen, was die DD-Werte angeht) evtl einen eleganteren Lösungsansatz? Was meinst du?

Viele Grüße

Andy


Antworten