pl: Datenstrukturen aus Formulareingaben

Beitrag lesen

problematische Seite

Moin,

Ach, das ist dein Verständnisproblem. Der Konstruktor von URLSearchParams() kann nicht nur einen Querystring entgegennehmen, sondern auch eine Sequenz entgegennehmen, deren Elemente jeweils eine Sequenz von zwei Strings ist, also ein "Array of Arrays of two Strings". In Code ausgedrückt beispielsweise:

[['foo', 'bar'], ['qux', 'baz'], ...]

Ich frage mich wer auf solche Datenstrukturen kommt, zumal es sich ja um assoziierte Daten handelt {Schlüssel: Wert}. Das führt doch fast zwangsläufig eher hierzu:

[
   {
      name: 'foo',
      value: 'bar' 
   },
   {
      name: 'foo',
      value: 'foo' 
   },
   {
      name: 'qux',
      value: 'baz'
   },
]

Unabhängig von meinen diesbezüglichen Überlegungen, Ergebnis siehe obenstehend, erzeugt jQuery(form).serializeArray() ganz genau dieselbe Datenstruktur. Leider ist dabei die FileAPI nicht berücksichtigt, also Uploadfelder werden mit dieser jQuery Funktion nicht erfasst.

Trotzdem ist diese Funktion interessant, nämlich dann, wenn aus den Formulardaten ein anderer Enctype zb. application/json erzeugt werden soll.

Wobei man hinsichtlich Default-Enctype die sich aus mehreren Werten ergebenden Arrays zusammenfassen kann:

{
    foo: ['foo','bar'],
    qux: ['baz']
}

So daß sich obenstehende schmale Datenstruktur ergibt ohne Redundanzen.

Diese Zusammenfassung ist deswegen so wichtig, weil sie die direkte Adressierung nach dem Feldnamen ermöglicht. Und ist natürlich auch unabhängig vom Enctype. D.h., man kann die Datenstruktur auch serverseitig, also nach der Übertragung so umbauen.

Wie auch immer, URLSearchParams ist ja nicht das Problem und auch nicht die Lösung dafür, die Daten eines Formulars zu erfassen. Betrachtet man das <form>-Element selbst als Schnittstelle, so bietet das DOM schon eine Reihe an Möglichkeiten an die eingegebenen Daten zu kommen ohne daß man jedes Eingabefeld mit einer ID spicken muss.

So isses. Und die FileAPI da mit reinzunehmen ist auch kein Problem.

MfG

0 184

Braucht noch wer jQuery?

Robert B.
  • javascript
  • jquery
  1. 1
    Rolf B
  2. 0
    Mitleser
    1. 0
      Robert B.
  3. 2
    klawischnigg
    1. 0
      Robert B.
    2. 1
      Henry
      1. 2
        Matthias Apsel
        • javascript
        1. 0
          Henry
          1. 1
            Robert B.
            1. 2
              JürgenB
      2. 0
        beatovich
        1. 1
          Henry
          • javascript
          • jquery
          • meinung
        2. 0
          Robert B.
          • javascript
          • jquery
          • menschelei
    3. 2
      pl
      1. 1
        klawischnigg
        1. 0
          pl
        2. 0
          marctrix
  4. 1
    JürgenB
  5. 7

    Ein gutes Wort für jQuery

    1unitedpower
    1. 0
      Rolf B
      1. 1
        1unitedpower
  6. 0
    pl
    1. 0
      dedlfix
      1. 0
        Christian Kruse
        1. 0
          dedlfix
          1. 0
            Christian Kruse
            1. 0
              dedlfix
              1. 0
                pl
                1. 0
                  dedlfix
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. 0
                        pl
                        1. 0
                          Christian Kruse
                        2. 0
                          MudGuard
                        3. 0
                          dedlfix
                          1. -2
                            pl
                          2. 0
                            pl
                            1. 0
                              Robert B.
                              • menschelei
                              1. -1
                                pl
                                1. 0
                                  Matthias Apsel
                                2. 0
                                  Robert B.
                                  1. 0
                                    pl
                                    1. 4
                                      Christian Kruse
                                    2. 0
                                      Robert B.
                                      1. -1
                                        pl
                                        1. 0
                                          Matthias Apsel
                                        2. 0
                                          Robert B.
                                          1. 0
                                            Matthias Apsel
                                          2. 0
                                            pl
                                            1. 0
                                              Matthias Apsel
                                            2. 0
                                              Robert B.
                                              1. 0
                                                pl
                                            3. 1
                                              dedlfix
                                              1. 0
                                                pl
                                                1. 2
                                                  dedlfix
                                                  1. 0
                                                    pl
                                                    1. 1
                                                      Matthias Apsel
                                                      1. -1
                                                        pl
                            2. 0
                              Matthias Apsel
                              • meinung
                            3. 2
                              dedlfix
                        4. 0
                          JürgenB
                          1. 0
                            pl
                            1. 0
                              JürgenB
                              1. 0
                                pl
                                1. 1
                                  JürgenB
                                  1. 0

                                    jquery vs modern JS

                                    pl
                                    1. 2
                                      JürgenB
                                      1. 0
                                        pl
                        5. 0
                          Robert B.
                          • browser
                          • javascript
                          • jquery
                          1. 0
                            beatovich
                            1. 0
                              Robert B.
                              1. 0
                                beatovich
                                1. 1
                                  dedlfix
                                  1. 0
                                    beatovich
                                    1. 0
                                      dedlfix
                      2. 0
                        Matthias Apsel
                        1. 0
                          dedlfix
                          1. 0
                            Matthias Apsel
                            1. 0
                              dedlfix
          2. 0
            pl
      2. 0
        pl
        1. 0
          dedlfix
          1. 0
            pl
            1. 1
              dedlfix
              1. 0

                FromData toString und Kontextwechsel

                pl
                1. 4
                  dedlfix
                  1. 0
                    pl
                    1. 2
                      dedlfix
                      1. -1
                        pl
                        1. 1
                          dedlfix
                          1. 0
                            pl
                    2. 0

                      Typisch für OOP Overload

                      pl
                      1. 0
                        pl
                        • javascript
                        • jquery
                        • perl
                2. 2
                  Orlok
                  • programmiertechnik
                  1. 0
                    pl
                    1. 0
                      Matthias Apsel
                  2. 0
                    Robert B.
                    • javascript
                    • programmiertechnik
                    • python
                    1. 0
                      dedlfix
                      1. 0
                        Robert B.
                        1. 1
                          Christian Kruse
                        2. 1
                          dedlfix
                          1. 0
                            Robert B.
                            • menschelei
                            1. 0
                              dedlfix
                              1. 0
                                Robert B.
                                • menschelei
                                • python
                                1. 0
                                  dedlfix
                          2. 0
                            Robert B.
                            • c++
                            • javascript
                            • programmiertechnik
                            1. 2
                              Orlok
                          3. 0
                            Klaus Mennward
                            1. 0
                              dedlfix
                              1. 0
                                dedlfix
                            2. 0
                              Robert B.
                              • programmiertechnik
                              • python
                              1. 1
                                Rolf B
    2. 0
      pl
      1. 2
        dedlfix
        1. 0
          pl
          1. 4
            dedlfix
            1. 0
              pl
              1. 0
                dedlfix
                1. -1
                  pl
                  1. 0
                    dedlfix
                    1. 0
                      pl
                      1. 0
                        dedlfix
                        1. -1
                          pl
                          1. 3
                            Christian Kruse
                          2. 6
                            dedlfix
                            1. -3
                              pl
                              1. 4
                                dedlfix
                                1. -2
                                  pl
                                  1. 0
                                    dedlfix
                                    1. -1
                                      pl
                                      1. 2
                                        dedlfix
                                        1. 0
                                          pl
                                          1. 1
                                            Robert B.
                                            • menschelei
                                            • zu diesem forum
                                            1. 0
                                              pl
                                          2. 2
                                            dedlfix
                                            1. -2
                                              pl
                                              1. 2
                                                dedlfix
                                                1. -2
                                                  pl
                                                  1. 2
                                                    dedlfix
                                                    1. 1
                                                      Rolf B
                                                      1. 0
                                                        Matthias Apsel
                                                        1. 0
                                                          Christian Kruse
                                                          1. 0
                                                            Matthias Apsel
                                                            • menschelei
                                                      2. 0
                                                        pl
                                                        1. 3
                                                          dedlfix
                                                    2. 0

                                                      Framework und serialize

                                                      pl
                                                      1. 2
                                                        dedlfix
                                                        1. -1

                                                          Schlechter Programmierstil

                                                          pl
                                                  2. 3
                                                    Christian Kruse
                                            2. -1

                                              Datenstrukturen aus Formulareingaben

                                              pl
                                              1. 2
                                                dedlfix
                                                1. 0
                                                  pl
                                                  1. 0
                                                    dedlfix
                                                    1. -1
                                                      pl
                                                      1. 1
                                                        dedlfix
                                                        1. -2
                                                          pl
                                                          1. 0
                                                            beatovich
                                                            1. -1
                                                              pl
                                                          2. 1
                                                            Mitleser
                                                            1. 1
                                                              JürgenB
                                                              1. 0
                                                                pl
                                                            2. -1
                                                              pl
                                                              1. 2
                                                                Matthias Apsel
                                                                • meinung
                                                                • sonstiges
                                                                1. 0
                                                                  pl
                                                                  1. 0
                                                                    Matthias Apsel
                                                                    1. -1
                                                                      pl
                                                                    2. -1
                                                                      pl
                                                                      1. 0
                                                                        Matthias Apsel
                                                                        1. -1
                                                                          pl
                                                                          1. 1
                                                                            Christian Kruse
                                                          3. 3
                                                            dedlfix
                                                            1. -1
                                                              pl
                                                              1. 1
                                                                dedlfix
                                                                1. 0
                                                                  pl
                                                                  1. 1
                                                                    dedlfix
                                                                    1. -1
                                                                      pl
                                                          4. 1
                                                            Robert B.
                                                            • menschelei
                                                        2. 0
                                                          Matthias Apsel
                                                          • menschelei
                                              2. 0
                                                pl
                                              3. 0
                                                pl
  7. 1
    klawischnigg
    1. 0
      Robert B.
  8. 1
    marctrix
    • css
    • sass