W budowie
Prezentacja modułu

Część 07 · Formularz: pola wyboru i prezentacja danych — kurs PHP INF.03

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.

  • 45 min
  • 16 slajdów
  • Notatki nauczyciela: N
  • Strona modułu: otwórz
Plan · 45 min

Co dziś robimy

  1. 12 minPola wyboru: checkbox i radio name="hobby[]" , tworzy w PHP tablicę.
  2. 12 minListy rozwijane i wybór wielokrotny Dodanie multiple pozwala zaznaczyć kilka pozycji — wtedy pole trzeba nazwać…
  3. 12 minPrezentacja danych w tabeli Każdą wartość przepuszczamy przez htmlspecialchars() .
  4. 4 minĆwiczenia 16 zadań w module — wybierz 3–4 na lekcję
  5. 5 minPodsumowanie bilet wyjściowy i zadanie domowe
Atom 1 z 4 · ~12 min

Pola wyboru: checkbox i radio

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.

  • name="hobby[]" , tworzy w PHP tablicę.
  • Pole value jest tym, co naprawdę trafia do serwera.
  • Etykieta obok to tylko opis dla użytkownika — bez value wyśle się napis on .
Kod · atom 1 · ~3 min

Jak to wygląda w kodzie

$hobby = $_GET['hobby'] ?? [];
$poziom = $_GET['poziom'] ?? '';

foreach ($hobby as $h) {
    echo '<p>Hobby: ' . htmlspecialchars($h) . '</p>';
}
echo '<p>Poziom: ' . htmlspecialchars($poziom) . '</p>';
Przykład na żywo · atom 1 · ~3 min

Uruchom i pokaż

$hobby = $_GET['hobby'] ?? [];
$poziom = $_GET['poziom'] ?? '';

foreach ($hobby as $h) {
    echo '<p>Hobby: ' . htmlspecialchars($h) . '</p>';
}
echo '<p>Poziom: ' . htmlspecialchars($poziom) . '</p>';
Sprawdzenie · atom 1 · ~2 min

Pytanie do klasy

Co łączy przyciski radio?

Atom 2 z 4 · ~12 min

Listy rozwijane i wybór wielokrotny

Listę rozwijaną tworzy select z opcjami option . Wartość wybranej opcji pochodzi z atrybutu value , a nie z widocznego tekstu.

  • Dodanie multiple pozwala zaznaczyć kilka pozycji — wtedy pole trzeba nazwać name="jezyki[]" , żeby PHP otrzymał tablicę.
  • Bez nawiasów zostanie tylko jedna wartość.
  • Po stronie PHP warto sprawdzić, czy wybrana wartość należy do listy dozwolonych.
  • Dane z formularza można podmienić, więc lista opcji w HTML nie jest żadnym zabezpieczeniem.
Kod · atom 2 · ~3 min

Jak to wygląda w kodzie

$jezyki = $_GET['jezyki'] ?? [];
$dozwolone = ['php', 'js', 'sql'];

foreach ($jezyki as $j) {
    if (in_array($j, $dozwolone, true)) {
        echo '<p>Wybrano: ' . $j . '</p>';
    }
}
Przykład na żywo · atom 2 · ~3 min

Uruchom i pokaż

$jezyki = $_GET['jezyki'] ?? [];
$dozwolone = ['php', 'js', 'sql'];

foreach ($jezyki as $j) {
    if (in_array($j, $dozwolone, true)) {
        echo '<p>Wybrano: ' . $j . '</p>';
    }
}
Sprawdzenie · atom 2 · ~2 min

Pytanie do klasy

Skąd pochodzi wartość opcji?

Atom 3 z 4 · ~12 min

Prezentacja danych w tabeli

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.

  • Każdą wartość przepuszczamy przez htmlspecialchars() .
  • Pamiętaj też o pustej tablicy — jeśli nic nie wybrano, warto pokazać komunikat zamiast pustej tabeli.
  • Alternatywą dla tabeli jest lista definicji dl przy dwóch–trzech polach.
  • Tabela ma sens, gdy kolumn jest więcej i mają stałe znaczenie.
Kod · atom 3 · ~3 min

Jak to wygląda w kodzie

$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>';
Przykład na żywo · atom 3 · ~3 min

Uruchom i pokaż

$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>';
Sprawdzenie · atom 3 · ~2 min

Pytanie do klasy

Czym budujemy wiersze tabeli?

Zamknięcie · ~3 min

Co zabrać z lekcji

  • radio pozwala wybrać jedną opcję z grupy — dlatego wszystkie przyciski w grupie muszą mieć tę samą nazwę .
  • Dodanie multiple pozwala zaznaczyć kilka pozycji — wtedy pole trzeba nazwać name="jezyki[]" , żeby PHP otrzymał tablicę.
  • Każdą wartość przepuszczamy przez htmlspecialchars() .
  • Ćwiczenia
Bilet wyjściowy: Kiedy tabela, a kiedy lista?
Odpowiedź: b) Tabela przy wielu kolumnach
Hyżyk· Część 07 · Formularz: pola wyboru i prezentacja danych — kur moduł 1 / 1