HTML/PHP Wert von Checkboxen mit Array merken

  • HTML

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Link.

    HTML/PHP Wert von Checkboxen mit Array merken

    Hi, ich habe 4 Checkboxen mit einem Namen als Array und würde gerne den Status jeder Checkbox nach einem Submit behalten:

    HTML-Quellcode

    1. <input type='checkbox' name='smram[]' value='1' <?php if(isset($_POST['smram'][0])) echo " checked='checked' "; ?>> <1 GB</input></br>
    2. <input type='checkbox' name='smram[]' value='2' <?php echo isset($_POST['smram'][1]) ? " checked='checked' " : ""; ?>> 2 GB</input></br>
    3. <input type='checkbox' name='smram[]' value='3' <?php echo isset($_POST['smram'][2]) ? " checked='checked' " : ""; ?>> 3 GB</input></br>
    4. <input type='checkbox' name='smram[]' value='4' <?php if(isset($_POST['smram'][3])) echo " checked='checked' "; ?>> 4 GB+</input>


    So allerdings speichert er im Array nur die, die checked sind. Das heißt wenn ich die letzten beiden checke speichert er nur: {1, 1}
    Das heißt nach dem Submit sind die ersten beiden checked.

    Wie schaffe ich es jetzt, dass im Array stattdessen {0, 0, 1, 1} steht?
    @ManuelSoftware das ist irrelevant, so oder so werden nicht-gecheckte Checkboxen beim Absenden des Formulars nicht an den Server übertragen.

    Es gibt 3 Möglichkeiten:
    Lösung #1 Wenn du die Checkboxen kennst, kannst du serverseitig ganz einfach mit "isset" abfragen.
    Lösung #2 Wenn die Checkboxen dynamisch generiert werden (d.h. wenn dir nicht bekannt ist welche Felder übermittelt werden) wirst du mit hidden-inputs arbeiten müssen, die dann mit JavaScript entsprechend gesetzt werden. //Edit schau auch hier stackoverflow.com/questions/18…kboxes-that-are-unchecked
    Lösung #3 Packe ein hidden input-Feld vor die Checkbox, das den gleichen Namen hat wie die Checkbox. Serverseitig prüfst du, ob der Wert "on" oder ein anderer (nämlich der vom hidden input) ist. Wenn es nicht "on" ist, wurde die Checkbox nicht gechecked.


    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Link“ ()