Wie kann ich in PHP eine Checkbox mit MySQL verbinden?

2 Antworten

Beispiel:

<form method="post" name="form">
  <label for="some-checkbox">Is checked:</label><input id="some-checkbox" name="somecheckbox" type="checkbox">
  <button>Send</button>
</form>
<?php
  if (isset($_POST["form"])) {
    print "Checkbox was " . (isset($_POST["somecheckbox"]) ? "" : "not ") . "checked.";
  }
?>

Über das Formular werden Werte von Formularfeldern mit name-Attribut an den Server übermittelt und können über das superglobale Array $_POST ausgelesen werden (bei GET-Methode über $_GET). Wenn es einen Eintrag für die Checkbox gibt, wurde sie gesetzt. Ansonsten nicht.

Nun brauchst du das Ergebnis nur noch in die Datenbank schreiben. Du kannst für den Spaltentyp BIT oder TINYINT nehmen. Wie man Werte in eine Datenbanktabelle schreibt, kannst du dir hier anschauen.

Erstelle für jede Checkbox eine Spalte vom Datentyp INT oder TINYINT.

Speichere beim Abschicken des Formulars um die Checkboxen die jeweiligen Werte in den Spalten. Lies dazu aus dem Request aus, ob die Checkbox angehakt ist.
Tipp: wenn sie nicht angehakt ist, hat die Variable keinen Wert - in dem Fall musst Du dann "0" in der Datenbank speichern.

Lies beim Laden der Seite diese Werte aus der Datenbank aus und setz im HTML-Code das Attribut checked wenn der Wert 1 ist.

Woher ich das weiß:Berufserfahrung
SebastianJustin 
Fragesteller
 15.02.2020, 12:13

Ich bin zwar so weit, dass die Checkbox ausgewählt ist, wenn in der Datenbank eine 1 steht, aber weiß nicht wie ich mit dem INSERT weiter machen soll, finde da keine richtige Lösung zu.

Momentan sieht es ungefähr so aus:

<form>
<?php
    if($fetch[optionx] == 1) {
     $optionxcheck = "checked";
    } else {
     $optionxcheck = "";
    }
echo '<label class="switch"><input type="checkbox" name="optionx" value=optionx' . $optionxcheck . '><span class="slider"></span></label> optionx <br>';
?>
   <br>
   <input type="submit" value="Speichern" class="btn btn-primary" name="submit">
  </form>
0