Ankündigung

Einklappen
Keine Ankündigung bisher.

Select multiple Auswertung übermittelt nur den letzten Wert

Einklappen

Neue Werbung 2019

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

  • Select multiple Auswertung übermittelt nur den letzten Wert

    Hallo, ich bin's mal wieder.

    Leider habe ich ein etwas komischeres Problem, wo ich den Fehler einfach nicht finde. Sofern ich in meinem multiple-select Feld mehrere Auswahlen treffe (wofür es ja auch gedacht ist), überträgt er nach Absenden des Formulars lediglich das Value mit dem höchsten Wert.

    Auswahl.html:
    HTML-Code:
    <form method='POST' action='test.php'>
        <select name='test'  size="5" multiple required>
            <option value="1">Wert 1</option>
            <option value="2">Wert 2</option>
            <option value="3">Wert 3</option>
            <option value="4">Wert 4</option>
            <option value="5">Wert 5</option>
            <option value="6">Wert 6</option>
            <option value="7">Wert 7</option>
        </select>
    </form>

    test.php
    PHP-Code:

    echo "Einträge:<br>";
    $zahl count($_POST['test']);
    for(
    $i=0$i $zahl$i++)
       {
       echo 
    $_POST['test'][$i]."<br>";
       }
    echo 
    "Es sind $zahl Einträge im Array"
    Ausgewählt werden Wert 1, Wert 2 und Wert 5
    Ausgabe:
    Einträge:
    5
    Es sind 1 Einträge im Array
    Was er eigentlich ausgeben soll:
    Einträge:
    1
    2
    5
    Es sind 3 Einträge im Array
    Wo liegt der Fehler. Ich komme einfach nicht draus.

    MfG

    Chris

  • #2
    Nutze foerach() und lass dir interessehalber voher mal $_POST mit print_r() oder var_dump() ausgeben dann siehst du genau was enthalten ist.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      name="test[]" statt name="test"

      PHP-Code:
      <pre><?php var_dump($_POST); ?></pre>
      <form method="post">
          <select name="test[]" size="5" multiple required>
              <option value="1">Wert 1</option>
              <option value="2">Wert 2</option>
              <option value="3">Wert 3</option>
              <option value="4">Wert 4</option>
              <option value="5">Wert 5</option>
              <option value="6">Wert 6</option>
              <option value="7">Wert 7</option>
          </select>
          <input type="submit" />
      </form>

      Kommentar


      • #4
        Tipp für das Verständnis:
        In dieser Demo werden als Nebenprodukt eines Test's diverse Varianten von Select's gezeigt. Die Select's können auch aktiv bedient werden, per POST gesendet und als Resultat wird dann das gesamte $_POST-Array gezeigt wie es in PHP verfügbar ist.

        Kommentar

        Lädt...
        X