<?php
function h(string $value): string
{
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
$isPost = $_SERVER['REQUEST_METHOD'] === 'POST';
$data = [
'text' => '',
'code' => '',
'postal' => '',
'email' => '',
'date' => '',
'number' => '',
'select' => '',
'radio' => '',
'checkbox_single' => false,
'checkbox_group' => [],
'textarea' => '',
];
if ($isPost) {
$data['text'] = trim($_POST['text'] ?? '');
$data['code'] = trim($_POST['code'] ?? '');
$data['postal'] = trim($_POST['postal'] ?? '');
$data['email'] = trim($_POST['email'] ?? '');
$data['date'] = trim($_POST['date'] ?? '');
$data['number'] = trim($_POST['number'] ?? '');
$data['select'] = trim($_POST['select'] ?? '');
$data['radio'] = trim($_POST['radio'] ?? '');
$data['checkbox_single'] = isset($_POST['checkbox_single']);
$data['checkbox_group'] = $_POST['checkbox_group'] ?? [];
$data['textarea'] = trim($_POST['textarea'] ?? '');
if (!is_array($data['checkbox_group'])) {
$data['checkbox_group'] = [];
}
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<!-- ============================== -->
<!-- HTML-GRUNDGERÜST / HEAD -->
<!-- ============================== -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Universelles Formular-Grundgeruest</title>
</head>
<body>
<div class="page">
<!-- ============================== -->
<!-- SEITE / EINLEITUNG -->
<!-- ============================== -->
<div class="task-note">
<?php if ($isPost): ?>
<!-- ============================== -->
<!-- AUSGABE / ERGEBNIS -->
<!-- ============================== -->
<div class="summary">
<h2>Auswertung</h2>
<p><strong>Text:</strong> <?= h($data['text']) ?></p>
<p><strong>Code:</strong> <?= h($data['code']) ?></p>
<p><strong>Postal:</strong> <?= h($data['postal']) ?></p>
<p><strong>Email:</strong> <?= h($data['email']) ?></p>
<p><strong>Date:</strong> <?= h($data['date']) ?></p>
<p><strong>Number:</strong> <?= h($data['number']) ?></p>
<p><strong>Select:</strong> <?= h($data['select']) ?></p>
<p><strong>Radio:</strong> <?= h($data['radio']) ?></p>
<p><strong>Checkbox single:</strong> <?= $data['checkbox_single'] ? 'Ja' : 'Nein' ?></p>
<p><strong>Checkbox group:</strong> <?= h(implode(', ', $data['checkbox_group'])) ?></p>
<p><strong>Textarea:</strong> <?= nl2br(h($data['textarea'])) ?></p>
</div>
<?php endif; ?>
<form method="post" action="">
<!-- ============================== -->
<!-- FIELDSET: BASISDATEN -->
<!-- Suche hier nach: Pflichtfeld, pattern, email, date -->
<!-- ============================== -->
<fieldset>
<legend>Basisdaten</legend>
<!-- PFLICHTFELD: einfacher Text -->
<div class="field required">
<label for="text">Textfeld:</label>
<input type="text" id="text" name="text" value="<?= h($data['text']) ?>" required>
<div class="helper">Allgemeines Pflicht-Textfeld fuer Namen, Bezeichnungen oder kurze Angaben.</div>
</div>
<!-- PATTERN: genau 3 Grossbuchstaben -->
<div class="field required">
<label for="code">Code / Kuerzel:</label>
<input type="text" id="code" name="code" value="<?= h($data['code']) ?>" pattern="[A-Z]{3}" maxlength="3" title="Genau 3 Grossbuchstaben" required>
<div class="helper">Typisch fuer Kuerzel wie Mitarbeiter-Initialen oder kurze Kennungen.</div>
</div>