Hallo Gunther,
also das, wozu Listenauswahlfelder klassisch existieren?
Genau.
Besteht dieses aus einzeiligen Input-Feldern? Und die Anzahl möglicher Einträge soll variable sein?
Dann müsstest du ja eh dynamisch weitere Input-Felder einfügen.
Stimmt beides ziemlich genau. Eventuell kommt zu den Inputfields eine Textarea dazu, aber prinzipiell ist das Formular genau so aufgebaut und ich sehe vor, weitere Felder dynamisch zu generieren.
Wahrscheinlich ...,
das Einzige was mir jetzt so auf Anhieb dazu noch einfallen würde, wäre das Stichwort 'AJAX', da du ja anscheinend eh Javascript zwingend voraussetzt.
Setze ich zwingend voraus, auch das ist richtig. Ich habe genau das in diesem Thread angesprochene Problem an 2 weiteren Stellen schonmal in Angriff genommen und auch gelöst. Beide Lösungen finde ich persönlich suboptimal. Die Ajaxlösung überfordert z.B. imm er weider die Schnelltipper im Verhältniss zu den Schlafmützen, die am selben Programm arbeiten sollen. Den Langsamen gehts noch zu schnell und die Schnellen kommen nicht weiter, weil sie entweder von den Ajaxeinblendungen irritiert werden oder gar der zeitliche Versatz des Ajax-Ausblenden sie tatsächlich am schreiben im nächsten oder unterhalb stehenden Input-Field hindert.
Da ich mir aber nicht ganz sicher bin, ob ich dein Vorhaben richtig verstanden habe, wäre ggf. eine weitere Option, die Ergebnisse aus der DB in eine Tabelle zu packen, wo der User jede Zeile per Checkbox auswählen kann, und zusätzlich noch eine Anzahl x an Eingabefeldern bereitzustellen, für neue Einträge.
Damit skizzierst Du genau die 2. Lösung, die ich schon umgesetzt habe. Hierbei ärgert mich jedesmal, das gesamte Formular neu laden zu müssen, sobald entweder die dargestellte Ergenissmenge der Tabelle eine andere sein soll. Vergrößere ich die Ergebnissmenge, kommt noch ein unschönes Bild dabei raus und der User muss ewig scrollen, bis er die Eingabemaske erreicht, falls der gewünschte Eintrag _nicht_ in der Ergebnissmenge enthalten ist und er manuell eintragen will.
Je nach gewünschter Browser-Unterstützung
IE6
könnte man das Problem des Scrollens per CSS (bspw. durch position:fixed) lösen.
Das wäre dann u.U. eine Variante, die auch noch ohne JS funktionieren würde. Ich bin mir halt nur nicht sicher, ob sie deinen Anforderungen genügt.
Wäre derzeit meine favorisierte Lösung. Ein DIV, was quasi wie ein Frame funktioniert. Am liebsten Datenübernahme ins Formular direkt am Client ohne Serveranfrage. Erneute Serveranfrage nur bei Absenden des Formulares bzw. bei Änderungen der darzustellenden Ergebnissmenge im DIV.
Erstmal Grüße, Harald