Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere Checkboxen filtern + einer Variable zuordnen

Einklappen

Neue Werbung 2019

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

  • Mehrere Checkboxen filtern + einer Variable zuordnen

    Hey,

    mal ne Frage. Wie macht ihr denn das Filtern von Checkboxen wenn ihr mehr als 7 habt von denen man einen Wert erwarten kann ?

    Ich würde jeder checkbox ein array als name geben. Somit sind alle Daten aus den Checkboxen in einem array. Dann kann ich dieses Array schon mit filter_var_array() filtern. Nach dem filtern würde ich dann mittels foreach den variablen deren schlüsselwert zuteilen.

    Was meint ihr ?

    Moonracer


  • #2
    Schau es dir an

    Was gefällt dir am besten und was ist wohl am sichersten?

    PHP-Code:
    <?php

    $Farbe 
    = ['rot''blau''gelb' ];

    var_dump($_GET);

    ?>

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Checkbox Test</title>
        <style>
            input[type='submit']{display:block;margin-top:2em;}
        </style>
    </head>
    <body>

        <form method="get">
        <h3>Variante 1</h3>
        <input type="checkbox" name="Farbe[]" value="rot"> rot
        <input type="checkbox" name="Farbe[]" value="blau"> blau
        <input type="checkbox" name="Farbe[]" value="gelb"> gelb

        <h3>Variante 2</h3>
        <input type="checkbox" name="Farbe1[rot]" value="checked"> rot
        <input type="checkbox" name="Farbe1[blau]" value="checked"> blau
        <input type="checkbox" name="Farbe1[gelb]" value="checked"> gelb

        <h3>Variante 3</h3>
        <input type="checkbox" name="Farbe2[]" value="0"> rot
        <input type="checkbox" name="Farbe2[]" value="1"> blau
        <input type="checkbox" name="Farbe2[]" value="2"> gelb

        <h3>Variante 4</h3>
        <input type="checkbox" name="Farbe3[0]" value="checked"> rot
        <input type="checkbox" name="Farbe3[1]" value="checked"> blau
        <input type="checkbox" name="Farbe3[2]" value="checked"> gelb
        <input type="submit" name="submit" id="submit">

    </body>
    </html>
    Variablenbenennung sollte man so nicht wählen und ist somit nur zur Veranschaulichung.


    Kommentar


    • #3
      Hm. Die Variante 2 und Variante 4 fallen schonmal weg aufgrund der value checked. Meiner Meinung nach ist die Variante 1 die beste.

      Habe das ganze nun wie folgt gelöst :

      HTML-Code:
      <div class="form-group" >
                  <label for="accessibility">Erreichbarkeit:</label><br>
                      <h5>Tageszeit:</h5>
                        <label for="morning"><input type="checkbox" name="accessibility[morning]" id="morning" value="morning,"> Vormittags</label>
                        <label for="afternoon"><input type="checkbox" name="accessibility[afternoon]" id="afternoon" value="afternoon,"> Nachmittags</label>
                      <h5>Tag:</h5>
                        <label for="monday"><input type="checkbox" name="accessibility[monday]" id="monday" value="monday,"> Montag</label>
                        <label for="tuesday"><input type="checkbox" name="accessibility[tuesday]" id="tuesday" value="tuesday,"> Dienstag</label>
                        <label for="wednesday,"><input type="checkbox" name="accessibility[wednesday]" id="wednesday" value="wednesday"> Mittwoch</label>
                        <label for="thursday"><input type="checkbox" name="accessibility[thursday]" id="thursday" value="thursday,"> Donnerstag</label>
                        <label for="friday"><input type="checkbox" name="accessibility[friday]" id="friday" value="friday,"> Freitag</label>
                </div>
      PHP-Code:
      if(isset($accessibility)){
                      
      $accessibility filter_var_array($accessibilityFILTER_SANITIZE_STRING);
              }

      if(
      count($accessibility) < 2){

                      
      $this->error[] = "<p class='errors'>Bitte wählen sie mindestens eine Tageszeit und einen Tag aus!";

                  } 
      Was meint ihr dazu ?

      Kommentar

      Lädt...
      X