Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zaokrąglanie cen i ich edycja w formularzu
Forum PHP.pl > Forum > Przedszkole
wujek2009
Cześć.

W bazie zapisuje ceny w kolumnie typu decimal (20, 8). Tworzę właśnie formularz edycji i chciałbym dać administratorowi możliwość ich edycji - prosta rzecz.
Tylko ceny w bazie zapisują się często gęsto w postaci: 530.130000 - więc jak wyświetlam cenę to zaokrąglam wartości (number_format).
Więc w konsekwencji mamy taki kod:
  1. <input type="text" name="price" value="<?php echo number_format($price, 2, ',', ' ') ?>" />
  2. // wynik: 530,13

Administrator wysyła formularz i muszę cenę uaktualnić, więc robię filtr typu:
  1. $price = $_POST['price'];
  2. $price = (Float) str_replace(array(' ', ',', '.', '%'), '', $price);


OK - tylko jeśli użytkownik wprowadzi w formularzu cenę 50,59 to według w/w filtru będziemy mieli sumę 5 059,00 (dla wizualizacji zaokrągliłem za pomocą number_format)). Więc stawiam pytanie: jak najlepiej edytować cenę?

Pozdrawiam.
Gość
Hej. Raczej nie edytować, tylko zapisywać. Moim zdaniem powinieneś zwracać błąd, jeśli wpisany ciąg jest nieprawidłowy (nie jest liczbą lub jest liczbą ujemną)
  1. $price = str_replace(array(' ', ','), array('', '.'), $_POST['price']);
  2. if (!is_numeric($price) || ($price < 0)) {
  3. // powrót do formularza z komunikatem błędu
  4. }
  5. else {
  6. // zapis do bazy
  7. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.