Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak zmienić przecinek na ktropkę
Forum PHP.pl > Forum > Przedszkole
guingampe
Witam,

pod J!1,5
mam taki kod
Kod
<input class="inputbox required" type="text" name="salary" id="salary" size="10" maxlength="10" value="<?php echo this->row->salary; ?>" />


Podczas wpisywanie liczby z przecinkiem, który dostępny jest na polskich klawiaturach, do bazy zapisywane jest tylko to co stoi przed przecinkiem. Niezbędne jest stosowanie kropki!

Zamienilem kod na
Kod
<input class="inputbox required" type="text" name="salary" id="salary" size="10" maxlength="10" value="<?php echo str_replace(",",".",$this->row->salary); ?>" />


ale to nie rozwiązuje problemu.


Jak poprawnie nalezy wprowadzić str_replace?

Pozdrawiam
wookieb
A co robi kod, który masz teraz? Jako wartość pola TEKSTOWEGO w FORMULARZU wstawia tekst w którym zamieniasz przecinek na kropkę.
Dlaczego sądzisz, że ma to zmienić wartość pola zapisywanego do bazy?
guingampe
Dzieki za aktywność.

Problem raczej leży gdzie indziej. W mysql typ pola został ustawiony na FLOAT.

Po zmianie na TEXT - oba wskazane kody działają.

Ale czy to znaczy, że dla FLOAT działa kropka i nie można stosować str_replace, żeby zamienić kropke na przecinek?
wookieb
Dla float działa kropka. Ale dlaczego uważasz, że zmiana przecinka na kropkę w POLU formularza zmieni wartość wpisywaną DO BAZY?
guingampe
W formularzu zostawiłem pierwszy zapis tak jak byl.

Rozumiem, że zmiana powinna nastąpić poza formularzem?

Wstawilem coś takiego:
Kod
$this->row->salary = str_replace(",",".",$this->row->salary);
echo $this->row->salary;


teź nie działa

Próbowałem wstawić tak,
Kod
$this->row->salary = 12.00
$this->row->salary = str_replace(",",".",$this->row->salary);
echo $this->row->salary;

Wtedy zapisuje ładnie 12.00, ale np kiedy zrobilem tak:
Kod
$this->row->salary = 12,00
$this->row->salary = str_replace(",",".",$this->row->salary);
echo $this->row->salary;

to formularz w ogóle nie działa...

próbowałem również wstawić do formularza tak

Kod
<input class="inputbox required" type="text" name="salary" id="salary" size="10" maxlength="10" value="<?php echo  $salary1; ?>" />

Kod
$this->row->salary = $salary1
$this->row->salary = str_replace(",",".",$this->row->salary);
echo $this->row->salary;
w ogole nie dziala - nie zapisuje żadnej danej do bazy..
Mackos
Eh, to zrób tak:
Wejdź na stronę gdzie tak pięknie Ci wypisuje te dane z przecinkiem, a potem wpisz tam kwotę np. 122,67 (ważny przecinek),
a zaraz po tym spróbuj dodać gdzieś w kodzie php tą wartość 122,67 do dowolnej liczby całkowitej.
Tak jak Ci wookieb pisał Twoje rozwiązanie nie ma wiele wspólnego z Twoim głównym pytaniem.
guingampe
danych z przecinkiem własnie nie wypisuje...

Wiem, że żle ide... bo nie działa wink.gif ale w którym kierunku iść? Chciałbym pokombinować, ale nie wiele moge... Z jednej strony musze trzymac sie szablonu formularza, bo to część całego komponentu...a z drugiej strony wpisywanie wartości z kropką jest uciążliwe... Ta wartośc liczbowa dottyczy wynagrodzenia za godzinę, rozumiesz lepiej byłoby gdyby byla z pzrecinkiem wstawiana do formularza i zamieniana w trakcie zapisu do bazy na kropkę.

Najlatwiej udało mi się zmienić to poprzez zmiane typu w bazie na Text, ale obawiam się ze takie pozostawienie doprowadzi, że zamiast stawki, będą dopiski walutowe itp...

Jestem w przedszkolu? Czy jakoś nalezy tam pzrenieść ten post?
shinuexx
daj str_replace do kodu który wpisuje do bazy.
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.