Skip to content

52. Formularz zamówień produktów

This content is not available in your language yet.

Formularz zamówień produktów

Aplikacja webowa z listą produktów (z cenami), formularzem wyboru ilości i obliczaniem całkowitej sumy zamówienia. Zamówienia są zapisywane do pliku JSON.

  • Pracy z tablicą produktów w PHP
  • Obliczania sumy wielopozycyjnego zamówienia
  • Walidacji ilości (liczba całkowita >= 0)
  • Zapisu zamówień do JSON z timestampem

Formularze zamówień to podstawa każdego sklepu internetowego. Umiejętność obsługi wielopozycyjnego formularza z walidacją i obliczeniami jest niezbędna w e-commerce.

  1. Wyświetlenie listy produktów z cenami (z tablicy PHP)
  2. Formularz: ilość przy każdym produkcie (input number)
  3. Obliczenie sumy: sum(cena * ilość) dla wszystkich pozycji
  4. Wyświetlenie podsumowania zamówienia
  5. Zapis zamówienia do JSON
{
"products": [
{"id": 1, "name": "Zeszyt A5", "price": 3.99},
{"id": 2, "name": "Długopis niebieski", "price": 1.50},
{"id": 3, "name": "Linijka 30cm", "price": 2.99}
],
"orders": [
{
"id": 1,
"items": [
{"product_id": 1, "name": "Zeszyt A5", "qty": 3, "price": 3.99, "subtotal": 11.97}
],
"total": 11.97,
"created_at": "2026-02-10 14:30:00"
}
]
}
  • Lista 5 produktów z cenami
  • Formularz z ilościami
  • Obliczenie i wyświetlenie sumy
  • Walidacja: ilość >= 0
Ocena: 3.0
<?php
$products = [
['id' => 1, 'name' => 'Zeszyt A5', 'price' => 3.99],
['id' => 2, 'name' => 'Długopis', 'price' => 1.50],
['id' => 3, 'name' => 'Linijka', 'price' => 2.99],
];
$total = 0.0;
$items = [];
foreach ($products as $product) {
$qty = filter_var($_POST["qty_{$product['id']}"] ?? 0, FILTER_VALIDATE_INT, [
'options' => ['min_range' => 0, 'max_range' => 999]
]);
if ($qty === false) {
$errors[] = "Nieprawidłowa ilość dla: " . htmlspecialchars($product['name']);
continue;
}
if ($qty > 0) {
$subtotal = round($product['price'] * $qty, 2);
$total += $subtotal;
$items[] = [
'product_id' => $product['id'],
'name' => $product['name'],
'qty' => $qty,
'price' => $product['price'],
'subtotal' => $subtotal,
];
}
}
$total = round($total, 2);

Mały sklep w PHP

To klasyczne ćwiczenie dla każdego programisty webowego. Zacznij od wyświetlenia listy produktów, potem dodaj formularz, na końcu obsługę POST.