Formular - Auswahlliste

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Ich habe zur Zeit genau das selbe Problem!

    Leider wurde für das Problem noch keine Lösung gepostet.

    Das Absenden von allen Elementen einer Liste unabhängig davon, ob Elemente gewählt wurden oder nicht, würde meines Erachtens definitiv Sinn machen, da ich während der Anzeige der Seite abhängig von den Aktionen des Benutzers dynamisch Listenelemente mit Javascript hinzufügen möchte, die dann beim Absenden alle zusammen bearbeitet werden.

    Alternativ könnte ich auch eine Textarea verwenden, in die die einzelnen Elemente (vielleicht mit Komma oder ähnlichem getrennt) geschrieben werden, was allerdings definitiv nicht so elegant wie die Listenlösung wäre.

    Hat noch irgendjemand einen Ansatz für dieses Problem oder vielleicht eine Anregung für eine komplett andere Lösung?

    Kommentar


    • #17
      Meine Idee, die ich gerade habe, ist es, die Einträge neben der Liste noch GLEICHZEITIG per JS in hidden fields zu schreiben.

      Wäre diese Lösung legitim, oder fällt jemandem noch eine andere Lösung ein?

      Kommentar


      • #18
        Die Lösung ist ja total bescheuert ... warum liesst Du auf der Empfangenden Seite die Daten nicht einfach erneut ein und gleichst dann mit den übertragenen Daten ab??
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #19
          Wie im Beitrag eigentlich deutlich werden sollte, geht es ja gerade darum, dass nicht ausgewählte Listenelemente erst gar nicht an den Server übertragen werden!

          Vergleichbare Funktionalität gibt es doch auch in zahlreichen Windows-Anwendungen, in denen Einträge zwischen zwei Listen hin- und her transportiert werden können. Dabei werden trotzdem ALLE Listeneinträge verarbeitet, unabhängig davon, ob nun Elemente markiert sind oder nicht. Die Selektierung dient dabei eben nur dafür, um Elemente zwischen den Listen hin- und herzutransportieren.

          Die Interaktion zwischen den Listen würde ich gerne mit Javascript realisieren und nach dem Absenden des Formulars prüfen, welche Elemente sich in den Listen befinden.

          Kommentar


          • #20
            So, ein praktisches Beispiel für eine Lösung habe ich nun gefunden, als ich gerade auf E-Bay gestöbert habe :-)

            Dort gibt es im Dialog, in dem man die Anzeige für die Suchoptionen anpassen kann, exakt die selbe Situation.

            Dort wurde es, wie zuvor bereits kurz erwähnt, tatsächlich so gelöst, dass vor dem Absenden noch per Javascript alle Listenelemente markiert werden.

            Ist zwar irgendwie nicht gerade elegant, aber wenn niemand einen besseren Vorschlag hat, werde ich das wohl auch auf diese Weise realisieren...

            Kommentar


            • #21
              Original geschrieben von Mahavishnu

              Ist zwar irgendwie nicht gerade elegant, aber wenn niemand einen besseren Vorschlag hat,
              Der Vorschlag steht im 2. Post.
              werde ich das wohl auch auf diese Weise realisieren...
              bitte, wenn du so 'n Blödsinn machen willst, wird keiner dir daran hindern wollen

              Kommentar


              • #22
                Beziehst du dich auf diesen Post?
                "Du solltest alle Felder ausgeben lassen z.B. über eine for-Schleife und immer testen, ob das aktuelle Element auch in deinem Array ist.
                Wenn ja schreib es fett, wenn nein schreib es normal."

                Dann weiß ehrlich gesagt nicht genau, was ich damit anfangen soll. Hast du Dir das EBay-Beispiel zum Verändern der Suchparameter denn überhaupt mal angeschaut?

                Gibt es denn ein definitives Argument, dass gegen meine Lösung spricht?

                Viele Grüße

                Zuletzt geändert von Mahavishnu; 16.12.2005, 21:34.

                Kommentar


                • #23
                  wozu alternativ? Ich weiss nicht was bei e-Bay ist und ich habe keine Lust da vorbei zu schauen, ich vermute, dass du was falsches vermutet hast, denn woher willst du wissen, was nachdem Senden bei e-Bay auf dem Server ankommt?

                  Die Antwort in 1. Reply ist der einzige, vernünftige Weg. Warum willst du unnötige Daten auf dem Weg schicken, wenn der Server sie ohnehin schon hat

                  Kommentar


                  • #24
                    Original geschrieben von asp2php
                    wozu alternativ? Ich weiss nicht was bei e-Bay ist und ich habe keine Lust da vorbei zu schauen, ich vermute, dass du was falsches vermutet hast, denn woher willst du wissen, was nachdem Senden bei e-Bay auf dem Server ankommt?

                    Ich weiß es, weil man nun mal JavaScript-Code auf der Client-Seite einsehen kann und weil du als Anwender nach Klick auf die Absenden-Schaltfläche kurz sehen kannst, wie alle Elemente der Liste markiert werden.
                    Es besteht also kein Zweifel! :-)

                    Die Antwort in 1. Reply ist der einzige, vernünftige Weg. Warum willst du unnötige Daten auf dem Weg schicken, wenn der Server sie ohnehin schon hat
                    Verstehe ich nicht... Weder unnötige Daten werden verschickt, noch habe ich sie bereits auf dem Server!

                    Folgender Fall für eine Liste, in der der Anwender Schlagwörter hinzufügen kann aus einer anderen Liste:
                    Liste 1 mit den zugeordneten Schlagwörtern ist anfangs leer.
                    Liste 2 enthält alle verfügbaren Schlagwörter.

                    Der Anwender kann nun Schlagwörter von Liste 2 in Liste 1 mit Hilfe einer Schaltfläche übertragen und mit einer weiteren Schaltfläche umgekehrt. Dies erfolgt, indem er vor Betätigung der jeweiligen Schaltfläche die Listenelemente auswählt.

                    Dieses Prinzip ist aus Windows-Anwendungen 100%ig bekannt und somit für den Anwender sehr einfach zu bedienen.

                    Soweit erfolgt die Realisierung mit JavaScript.

                    Nach Betätigen der Absenden-Schaltfläche soll an den Server übermittelt werden, WELCHE Schlagwörter ausgewählt und somit in Liste 1 stehen.
                    DIESE Information steht serverseitig definitiv nicht zur Verfügung.

                    Auch wenn der (definitiv auch bei EBay) angewendete Lösungsweg vielleicht nicht 100%ig der Philosophie der HTML-SELECT-Liste entspricht, finde ich die Lösung aus Anwendersicht eigentlich nicht unbrauchbar.

                    P.S.: Lasse mich aber auch gerne eines besseren belehren
                    P.S.S: Sorry für die Änderung meines letztes Posts. Du hattest in der Zwischenzeit schon geantwortet.

                    Viele Grüße
                    Henrik

                    Kommentar


                    • #25
                      Noch ganz kurz zum Thema unnötige Daten verschicken. Ich würde es so realisieren, dass nur Liste 1 vollständig selektiert and anschließend als Werte die (serverseitig zugeordneten) IDs der einzelnen Schlagwörter übermittelt werden. Ich sehe nicht, dass hier unnötige Daten bei der Übertragung anfallen.

                      Kommentar


                      • #26
                        du verzettelst dich . Die bisherigen Antworten basieren auf deiner bisherigen Aussage.

                        Original geschrieben von Mahavishnu
                        Ich habe zur Zeit genau das selbe Problem!

                        Leider wurde für das Problem noch keine Lösung gepostet.

                        [color=blue]Das Absenden von allen Elementen einer Liste[/color][color=red] unabhängig davon, ob Elemente gewählt wurden oder nicht[/color], würde meines Erachtens definitiv Sinn machen, da ich während der Anzeige der Seite abhängig von den Aktionen des Benutzers dynamisch Listenelemente mit Javascript hinzufügen möchte, die dann beim Absenden alle zusammen bearbeitet werden.

                        Alternativ könnte ich auch eine Textarea verwenden, in die die einzelnen Elemente (vielleicht mit Komma oder ähnlichem getrennt) geschrieben werden, was allerdings definitiv nicht so elegant wie die Listenlösung wäre.

                        Hat noch irgendjemand einen Ansatz für dieses Problem oder vielleicht eine Anregung für eine komplett andere Lösung?
                        jetzt sagst du was anderes
                        Original geschrieben von Mahavishnu


                        Nach Betätigen der Absenden-Schaltfläche soll an den Server übermittelt werden, [color=red]WELCHE Schlagwörter ausgewählt [/color]und somit in Liste 1 stehen.
                        DIESE Information steht serverseitig definitiv nicht zur Verfügung.
                        und wehe du änderst was
                        Zuletzt geändert von asp2php; 16.12.2005, 21:58.

                        Kommentar


                        • #27
                          Ach mann, drücke ich mich denn so unklar aus?

                          Ersteres bezog sich auf die Selektierung von Elementen innerhalb der SELECT-Liste,
                          zweiteres auf die Auswahl von Schlagworten mit Hilfe der Schaltflächen zwischen den beiden Listen. Dazu muss in Liste 1 nichts selektiert sein. Die Auswahl hat bereits dadurch stattgefunden, dass per JavaScript die Elemente zur Liste überhaupt hinzugefügt wurden!

                          Hier der Link zum EBay Beispiel:
                          http://buecher.search.ebay.de/ws/sea...pZ1QQsacatZ607
                          Zuletzt geändert von Mahavishnu; 16.12.2005, 22:18.

                          Kommentar


                          • #28
                            Original geschrieben von Mahavishnu
                            Ach mann, drücke ich mich denn so unklar aus?
                            hm... ja ... ... oder ich bin heut' begriffstützig
                            Ersteres bezog sich auf die Selektierung von Elementen innerhalb der SELECT-Liste,
                            zweiteres auf die Auswahl von Schlagworten mit Hilfe der Schaltflächen zwischen den beiden Listen. Dazu muss in Liste 1 nichts selektiert sein. Die Auswahl hat bereits dadurch stattgefunden, dass per JavaScript die Elemente zur Liste überhaupt hinzugefügt wurden!
                            jetzt habe ich verstanden, und das mache ich doch auch ständig in asp.

                            Also 2 Möglickeiten, entweder beim absenden die Listenelemente komplett | separiert in hidden-Feld rein und ab damit, oder per js alle selektieren und ab. Da in asp die Nutzung von Namen à la var[] nicht möglich ist, d.h. es wird nicht als Array ankommen, habe ich die 1. immer genommen.

                            Kommentar


                            • #29
                              Original geschrieben von asp2php
                              hm... ja ... ... oder ich bin heut' begriffstützig

                              Die Möglichkeiten lasse ich jetzt einfach mal im Raum stehen

                              Also 2 Möglickeiten, entweder beim absenden die Listenelemente komplett | separiert in hidden-Feld rein und ab damit, oder per js alle selektieren und ab. Da in asp die Nutzung von Namen à la var[] nicht möglich ist, d.h. es wird nicht als Array ankommen, habe ich die 1. immer genommen.
                              Das hört sich doch gut an und exakt die Möglichkeit 2 hatte ich doch angesprochen! Und die Möglichkeit 1 kann ich jetzt noch zusätzlich in Betracht ziehen!

                              Jedenfalls vielen Dank für die Hilfe und die schnellen Antworten!
                              Zuletzt geändert von Mahavishnu; 16.12.2005, 22:34.

                              Kommentar


                              • #30
                                So, abschließend noch eine Ergänzung zu den von ASP2PHP vorgeschlagenen beiden Möglichkeiten, auf die ich gerade aufmerksam geworden bin und die ich diesem Forum nicht vorenthalten möchte:

                                Ebenfalls denkbar ist das Speichern der Auswahl in einer dritten per CSS versteckten SELECT-Liste, deren Elemente bei jeder Aktualisierung allesamt ausgewählt werden.

                                Auf diese Weise realisiert ist dies übrigens im PHP PEAR-Paket HTML_QuickForm_advmultiselect, welches übrigens ein fertige Lösung zum beschriebenen Anwendungsfall darstellt. Siehe dazu: http://www.laurent-laville.org/?mod=pear&des=qfams

                                Kommentar

                                Lädt...
                                X