Sollten so wie beim Beispiel Dynamische Listboxen mit WDDX auch noch die Klasse der einzelne Autotypen abhängig ausgewählt werden, so braucht man eine 3-fach verschachtelte SelectBox.
Die Daten würden dann so in der Datenbank stehen:
Herst | Type | Klasse |
---|---|---|
Fiat | Uno | Benzin |
Fiat | Uno | Diesel |
Fiat | Puno | 70 PS |
Opel | Vectra | 2l Diesel |
Opel | Vectra | 1.8 l Turbo |
Opel | Kadett | C |
Opel | Kadett | D |
VW | Golf | Cabrio |
VW | Golf | Combi |
VW | Passat | TDI |
VW | Passat | TDI-Allrad |
VW | Lupo | 1.3 Liter |
Um das ganze zu realisieren müssen die Daten in ein dreidimensionales Array eingelesen werden. Dieses Array läßt sich folgendermaßen darstellen, Die Werte hinter den Bezeichnungen geben die Position innerhalb des Arrays wieder:
// +-------- ZeilenIndex (RI)
// |
// |0 1 2 3 -------- SpaltenIndex (CI)
// |
// ### 1. Ebene 0 TI=0
// 0 Fiat 0,0,0 Uno 0,0,1 Benzin 0,0,2 Diesel 0,0,3
// 1 Fiat 0,1,0 Punto 0,1,1 70 PS 0,1,2
// ### 1. Ebene 1 TI=1
// 0 Opel 1,0,0 Vectra 1,0,1 2l Diesel 1,0,2 1.8l Turbo 1,0,3
// 1 Opel 1,1,0 Kadett 1,1,1 C 1,1,2 D 1,1,3
// ### 1. Ebene 2 TI=2
// 0 VW 2,0,0 Golf 2,0,1 Cabrio 2,0,2 Combi 2,0,3
// 1 VW 2,1,0 Passat 2,1,1 TDI 2,1,2 TDI-Allrad 2,1,3
// 2 VW 2,2,0 Lupo 2,2,1 1.3 Liter 2,2,2
Ein 3-Dimensionales Array kann mann sich als mehrere 2 Dimensionale Arrays vorstellen.
Jede "Ebene" enthält ein 2-Dimensionales Array, diese Ebenen werden mit den Tabellenindex (TI) gezählt.
Innerhalb jeder Ebene gibt es ein 2-Dimensionales Array mit den Spalten und den dazugehörigen ColumIndex (CI).
Hier steht in der ersten Spalte der Hersteller und in der zweiten Spalte die Type. In den weiteren Spalten stehen
die Einträge der einzelnen Klassen. Zugriff auf die Spalten mittels des SpaltenIndex/ColumIndex (CI).
Für jede Zeile muß ein neues Array (Object) mit new erzeugt werden, in welchen dann die einzelnen Klassenwerte
gespeichert werden.
Wenn mann sich das alles einmal vorstellen kann, ist der Rest nur meher reine Programmierarbeit. -:)
Der Code besteht aus 4 Teilen:
Die Absenden der Formulardaten kann sich dann jeder nach seinen Bedürfnissen anpassen.
Das Template mit einer Beispieldatenbank steht als Download
zur Verfügung.
Schoitsch Werner WERNER.SCHOITSCH@TK.OEBB.AT - 07.11.2000