Robert: Daten einer multiple Auswahlliste

Hallo,

wenn ich in einem Formular eine multiple Auswahlliste habe und das Formular dann submitte.
Wie komm ich dann an die Daten ran?
über $_POST[nameAuswahlliste] bekomme ich immer nur 1 Option die ich markiert hatte, aber nicht alle.

Und gibt es eine Möglichkeit, dass ich die einzelnen markierten Optionen in einem String unterbringen kann, getrennt durch Komma?

Vielen Dank für eure Hilfe

Gruß
Robert

  1. Hallo Robert,

    wenn ich Dich richtig verstanden habe:

      
    <input type="checkbox" name="checkboxarray[]" value="1">...  
    <input type="checkbox" name="checkboxarray[]" value="2">...  
    <input type="checkbox" name="checkboxarray[]" value="3">...  
    
    

    Auswerten mit PHP:

      
    $count = count($_POST['checkboxarray']);  
    for($x=0; $x<$count; $x++)  
     {  
      echo $_POST['checkboxarray'][$x]."<br>";  
     }  
    
    

    Grüße
    Mark

    1. Hallo Robert,

      wenn ich Dich richtig verstanden habe:

      <input type="checkbox" name="checkboxarray[]" value="1">...
      <input type="checkbox" name="checkboxarray[]" value="2">...
      <input type="checkbox" name="checkboxarray[]" value="3">...

      
      >   
      > Auswerten mit PHP:  
      >   
      > ~~~php
        
      
      > $count = count($_POST['checkboxarray']);  
      > for($x=0; $x<$count; $x++)  
      >  {  
      >   echo $_POST['checkboxarray'][$x]."<br>";  
      >  }  
      > 
      
      

      Grüße
      Mark

      Nein ich meinte:

      <select name"auswahl" size=5 multiple>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      ...
      </select>

      wenn ich jetzt 1 und 2 markiere und danach $_POST[auswahl] auslese, steht da nur 1 drin.
      Wie lese ich es richtig aus?

      P.S. Danke für den Tip, dass ich Namen auch als array setzen kann, wusste ich noch nicht

      1. echo $begrüßung;

        Nein ich meinte:

        <select name"auswahl" size=5 multiple>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        ...
        </select>

        wenn ich jetzt 1 und 2 markiere und danach $_POST[auswahl] auslese, steht da nur 1 drin.
        Wie lese ich es richtig aus?

        Wenn du dir ansiehst, was der Browser überträgt (stell mal dein Formular zum Testen auf GET um, dann siehst du es in der URL-Zeile), wirst du feststellen, dass ?auswahl=1&auswahl=2 übertragen wird. In $_GET/$_POST steht dann der zuletzt übertragene Wert, weil PHP beim Anlegen der $_GET/$_POST-Einträge den vorigen Wert mit gleichem Namen überschreibt. Es macht da nicht einfach so von sich aus ein Array aus dem ersten Wert und hängt dann den zweiten an. Das musst du ihm durch die Wahl eines dafür geeigneten name-Wertes mitteilen.

        P.S. Danke für den Tip, dass ich Namen auch als array setzen kann, wusste ich noch nicht

        Das wirkt auch in deinem Fall (und steht auch in der PHP-FAQ beschrieben: How do I get all the results from a select multiple HTML tag?).

        echo "$verabschiedung $name";

        1. echo $begrüßung;

          Nein ich meinte:

          <select name"auswahl" size=5 multiple>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          ...
          </select>

          wenn ich jetzt 1 und 2 markiere und danach $_POST[auswahl] auslese, steht da nur 1 drin.
          Wie lese ich es richtig aus?

          Wenn du dir ansiehst, was der Browser überträgt (stell mal dein Formular zum Testen auf GET um, dann siehst du es in der URL-Zeile), wirst du feststellen, dass ?auswahl=1&auswahl=2 übertragen wird. In $_GET/$_POST steht dann der zuletzt übertragene Wert, weil PHP beim Anlegen der $_GET/$_POST-Einträge den vorigen Wert mit gleichem Namen überschreibt. Es macht da nicht einfach so von sich aus ein Array aus dem ersten Wert und hängt dann den zweiten an. Das musst du ihm durch die Wahl eines dafür geeigneten name-Wertes mitteilen.

          P.S. Danke für den Tip, dass ich Namen auch als array setzen kann, wusste ich noch nicht

          Das wirkt auch in deinem Fall (und steht auch in der PHP-FAQ beschrieben: How do I get all the results from a select multiple HTML tag?).

          echo "$verabschiedung $name";

          Hallo,

          vielen Dank für die schnelle Hilfe. Ich bin halt noch Anfänger und bin mir dann oft nicht so sicher, wie etwas zusammenhängt und was man alles machen kann.

          Gruß
          Robert