Wie kann ich in PHP eine Checkbox mit MySQL verbinden?
Hallo,
ich habe drei Checkboxen mit denen man etwas Einstellen soll als bsp einfach nur true oder false.
Ich möchte nun, wenn ein Benutzer etwas auswählt, dass dieses in die Datenbank geschrieben wird und wenn der Benutzer sich die Einstellungen anschaut, dass die Checkboxen je nach Datenbank Eintrag auch dementsprechend ausgewählt sind, oder nicht.
Als Beispiel:
DB:
Checkbox1 = true
Checkbox2 = false
Checkbox3 = true
Benutzer geht in die Einstellungen und sieht:
Checkbox 1 : ☑
Checkbox 2 : ☐
Checkbox 3 : ☑
Wie genau gehe ich da vor?
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.
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>