Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Zaokrąglanie cen i ich edycja w formularzu
wujek2009
post
Post #1





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował wujek2009 22.12.2012, 20:21:34
Go to the top of the page
+Quote Post
-Gość-
post
Post #2





Goście







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. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:55