• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

assoziative Arrays, Checkboxen auswerten

jonathan09

Neues Mitglied
Hallo zusammen!

Die checkboxen eines Formularfeldes habe ich (nach Anleitung: Formularverarbeitung, Auswahlfelder - PHP.de Wiki) wie folgt aufgebaut:
HTML:
 <input type="checkbox" name="Farbe[rot]" value="ja"> rot   
<input type="checkbox" name="Farbe[blau]" value="ja"> blau   
<input type="checkbox" name="Farbe[gelb]" value="ja"> gelb

Nun habe ich von Arrays leider sehr wenig Ahnung; wie kann ich diese nun auswerten? Ich möchte jeweils den Namen (also z.B. rot, blau) und nicht den Wert (ja) in einem String gespeichert haben. Zudem möchte ich überprüfen, ob ein bestimmter Name vorhanden ist; hatte es mit
Code:
if(in_array('rot', $_POST['Farbe']))
  echo 'rot';

probiert - leider ohne Erfolg!

Freue mich über Eure Hilfe! Danke!
 
Werbung:
PHP:
<!DOCTYPE html>

<html lang="de">

    <head>
        <meta charset="utf-8" />
        <title>Demo</title>
    </head>
    
    <body>
        
        <?php
        
        if (count($_POST) > 0) {
            echo'<p>Inhalt von $_POST:</p>';
            echo '<pre>', print_r($_POST, true), '</pre>';
            
            if (isset($_POST['Farbe'])) {
                echo '<p>Gewählte Farben:</p>';
                echo '<pre>', implode(', ', array_keys($_POST['Farbe'])), '</pre>';
            }
        }
        
        ?>        
        
        <form action="" method="post">
            <input type="checkbox" name="Farbe[rot]" value="ja"> rot   
            <input type="checkbox" name="Farbe[blau]" value="ja"> blau   
            <input type="checkbox" name="Farbe[gelb]" value="ja"> gelb
            <input type="submit" name="demo">
        </form>

    </body>

</html>

Alternativ:

PHP:
<!DOCTYPE html>

<html lang="de">

    <head>
        <meta charset="utf-8" />
        <title>Demo</title>
    </head>
    
    <body>
        
        <?php
        
        if (count($_POST) > 0) {
            echo'<p>Inhalt von $_POST:</p>';
            echo '<pre>', print_r($_POST, true), '</pre>';
            
            if (isset($_POST['Farbe'])) {
                echo '<p>Gewählte Farben:</p>';
                echo '<pre>', implode(', ', $_POST['Farbe']), '</pre>';
            }
        }
        
        ?>        
        
        <form action="" method="post">
            <input type="checkbox" name="Farbe[]" value="rot"> rot   
            <input type="checkbox" name="Farbe[]" value="blau"> blau   
            <input type="checkbox" name="Farbe[]" value="gelb"> gelb
            <input type="submit" name="demo">
        </form>

    </body>

</html>

Edit: Ich finde die zweite Möglichkeit spontan schicker, hängt aber vielleicht auch vom Anwendungsfall ab.
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben