Felix Riesterer: Tutorial: select multiple sollte auch multiple senden

Beitrag lesen

Lieber Henry,

Du hast mich nicht verstanden.

Mich stört an $_POST, dass das hier in PHP nicht erkennbar wird:

<input name="a" value="x">
<input name="a" value="y">
<input name="a" value="z">

Auf PHP-Seite kommt an:

$_POST = array('a' => 'z');

Im Fall von Mehrfachauswahlen in einem Formular wird das zum Problem:

<select name="a" multiple>
  <option>x</option>
  <option>y</option>
  <option>z</option>
</select>

Wenn der User alle drei Optionen auswählt, werden sie genau so übertragen, wie die drei gleichnamigen input-Elemente weiter oben. Bei PHP kommt aber nur der letzte Wert an.

Was wäre, wenn PHP das hier anzeigen würde?

$_POST = array(
  0 => array('a' => 'x'),
  1 => array('a' => 'y'),
  2 => array('a' => 'z')
);

Hier könnte ich sehen, dass es drei mal einen Schlüssel a gab, aber mit drei verschiedenen Werten, verursacht durch eine Mehrfachauswahl. In HTML ist das grundsätzlich möglich und wird von Browsern auch korrekt übertragen, aber in PHP wird das zusammengeführt, so dass Information verloren geht. Man muss förmlich in PHP den Kniff benutzen, im name-Attribut eine PHP-typische Schreibweise zu benutzen. Und das finde ich nicht gut.

Bei $_GET ist das etwas anders:

$_SERVER['REQUEST_URI'] = 'path/script.php?a=x&a=y&a=z';
$_GET = array('a' => 'z');

Hier könnte man sich noch behelfen, weil man an den Suchstring kommt, aber bei POST-Daten ist das anders.

Das war der gedankliche Hintergrund bei meinem Posting.

Liebe Grüße

Felix Riesterer

0 53

Tutorial: select multiple sollte auch multiple senden

Linuchs
  • sonstiges
  1. 0
    Der Martin
  2. 1
    Rolf B
    1. 0
      Rolf B
      1. 0
        Felix Riesterer
        1. 0
          Henry
          • php
          • sonstiges
          1. 0
            Matthias Apsel
            1. 0
              Henry
          2. 0
            Felix Riesterer
            1. 0
              Der Martin
              1. 0
                Rolf B
              2. 0
                Tabellenkalk
              3. 0
                Raketenbastler
            2. 0
              kai345
              1. 0
                localhorst
                • meinung
                • php
                • programmiertechnik
                1. 1

                  [+1]

                  Raktenwilli
            3. 0
              Raketentestsystem
              1. 0
                Henry
                1. 0
                  Raketentestsystem
  3. 0
    Gunnar Bittersmann
    • html
    • usability
    • ux
    1. 1
      JürgenB
      1. 0
        Gunnar Bittersmann
        1. 0
          localhorst
          • html
          • ux
          1. 0
            Matthias Apsel
        2. 0
          JürgenB
          1. 0
            Gunnar Bittersmann
          2. 0
            Der Martin
            • usability
            • ux
            1. 0
              Rolf B
            2. 0
              Robert B.
              • menschelei
              • usability
              • ux
              1. 0
                Der Martin
      2. 0
        Robert B.
        1. 0
          JürgenB
          1. 0
            Robert B.
    2. 2
      klawischnigg
      1. 0
        Rolf B
        1. 0
          Der Martin
        2. 0
          klawischnigg
          1. 0
            Matthias Apsel
            1. 0
              Der Martin
              1. 0
                Matthias Apsel
            2. 0
              klawischnigg
              1. 0
                Der Martin
                1. 0
                  klawischnigg
                2. 0
                  Auge
                  • menschelei
                  • usability
                  • ux
  4. 0
    localhorst
    • https
    • php
    • programmiertechnik
    1. 0
      Der Martin
      1. 0
        Rolf B
        1. 0
          Der Martin
          1. 0
            Rolf B
            1. 0
              Der Martin
  5. 0
    JürgenB
    • menschelei
    1. 0
      Tabellenkalk
      1. 0
        JürgenB