Część 07 kursu PHP pod kątem INF.03: Formularz — pola wyboru i prezentacja danych. Teoria w skrócie i 16 ćwiczeń z automatycznym sprawdzaniem — checkbox, radio, textarea, pola hidden, sticky stan i zabezpieczenie XSS.
radio pozwala wybrać jedną opcję z grupy — dlatego wszystkie przyciski w grupie muszą mieć tę samą nazwę . checkbox pozwala zaznaczyć wiele wartości, więc każdy element ma własną nazwę albo nazwę z nawiasami kwadratowymi.
$hobby = $_GET['hobby'] ?? [];
$poziom = $_GET['poziom'] ?? '';
foreach ($hobby as $h) {
echo '<p>Hobby: ' . htmlspecialchars($h) . '</p>';
}
echo '<p>Poziom: ' . htmlspecialchars($poziom) . '</p>';
$hobby = $_GET['hobby'] ?? [];
$poziom = $_GET['poziom'] ?? '';
foreach ($hobby as $h) {
echo '<p>Hobby: ' . htmlspecialchars($h) . '</p>';
}
echo '<p>Poziom: ' . htmlspecialchars($poziom) . '</p>';
Co łączy przyciski radio?
Poprawna: b) Wspólna nazwa tworzy jedną grupę wyboru.
Listę rozwijaną tworzy select z opcjami option . Wartość wybranej opcji pochodzi z atrybutu value , a nie z widocznego tekstu.
$jezyki = $_GET['jezyki'] ?? [];
$dozwolone = ['php', 'js', 'sql'];
foreach ($jezyki as $j) {
if (in_array($j, $dozwolone, true)) {
echo '<p>Wybrano: ' . $j . '</p>';
}
}
$jezyki = $_GET['jezyki'] ?? [];
$dozwolone = ['php', 'js', 'sql'];
foreach ($jezyki as $j) {
if (in_array($j, $dozwolone, true)) {
echo '<p>Wybrano: ' . $j . '</p>';
}
}
Skąd pochodzi wartość opcji?
Poprawna: d) Serwer dostaje wartość z atrybutu value.
Dane z formularza najczytelniej pokazać w tabeli: nagłówek z nazwami kolumn, a każdy wiersz w pętli foreach . Tabelę budujemy razem z HTML, zamykając i otwierając PHP w środku.
$dane = [
'Imie' => $_GET['imie'] ?? '',
'Klasa' => $_GET['klasa'] ?? '',
];
echo '<table><tr><th>Pole</th><th>Wartosc</th></tr>';
foreach ($dane as $pole => $wartosc) {
echo '<tr><td>' . $pole . '</td><td>'
. htmlspecialchars((string) $wartosc) . '</td></tr>';
}
echo '</table>';
$dane = [
'Imie' => $_GET['imie'] ?? '',
'Klasa' => $_GET['klasa'] ?? '',
];
echo '<table><tr><th>Pole</th><th>Wartosc</th></tr>';
foreach ($dane as $pole => $wartosc) {
echo '<tr><td>' . $pole . '</td><td>'
. htmlspecialchars((string) $wartosc) . '</td></tr>';
}
echo '</table>';
Czym budujemy wiersze tabeli?
Poprawna: b) Foreach przechodzi po danych i tworzy wiersze.