<?php
// Checke, ob der Submit-Button geklickt wurde
if (isset($_POST['go'])) {
echo "<pre>";
print_r($_POST);
echo "</pre>";
$hasError = false;
$errors = "";
// Überprüfe die Checkbox mit den AGBs
if (!isset($_POST['agb'])) {
$errors .= "Bestätige, dass die AGBs gelesen wurden.<br>";
$agbChecked = "";
$hasError = true;
}
if (isset($_POST['agb']) && $_POST['agb'] == "ja") {
$agbChecked = "checked";
}
// Ausgabe des Feedbacks
if ($hasError) {
// Validation schlägt fehl
$feedback = "<div class=\"feedback_negative\">";
$feedback .= $errors;
$feedback .= "</div>\n";
}
else {
// Validation ist ok
$feedback = "<div class=\"feedback_positive\">";
$feedback .= "Alles ist ok. Das Formular wurde verschickt.";
$feedback .= "</div>\n";
}
}
else {
// erster @-Durchgang
$feedback = "<div class=\"feedback_negative\">";
$feedback .= "Das Formular wurde noch nicht verschickt. Klicke den Submit-Button!";
$feedback .= "</div>\n";
$agbChecked = "";
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Unchecked Checkboxes: Solution</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Condensed&family=Roboto:ital,wght@0,400;0,500;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/css/styles.css">
<link rel="stylesheet" href="/css/formstyles.css">
</head>
<body style="font-family: 'Roboto', sans-serif; font-size: 16px;">
<div id="container">
<h1>Unchecked Checkboxes: Solution</h1>
<p>Hier findest du einen einfachen Lösungsansatz, um obligatorische Checkboxen zu programmieren (vergl. die Problemstellung auf der letzten Seite). Der Ansatz eignet sich v.a. dann, wenn es sich um eine <strong>einzelne Checkbox</strong> handelt.<br>
Das "Trickli" dabei ist, das <code>checked</code>-Attribut sinnvoll in eine Variable abzufüllen und diese im HTML-Code der Checkbox auszugeben.</p>
<?=$feedback?>
<form action="" method="post">
<div class="form_control">
<input type="checkbox" id="agb" name="agb" value="ja" <?=$agbChecked?>>
<label for="agb" class="no_block label_right">Ich die AGBs gelesen*</label>
</div>
<div class="form_control">
<button type="submit" name="go" class="btn btn-blue">Verschicken</button>
</div>
</form>
</div>
</body>
</html>