Autor | Zpráva | ||
---|---|---|---|
Prefin Profil |
#1 · Zasláno: 30. 9. 2014, 18:55:57
Ahoj.
Trochu jsem se zasekl na převedení čísla z formátu měny do zase čistého. Číslo se formátuje pomocí metody toLocaleString() (JQuery): ... $( "#amount" ).val( ui.value.toLocaleString() + " Kč" ); ... function OdstranZnaky($text) { $co = Array(" ","Kč"); $cim = ""; return Str_Replace($co,$cim,$text); } 2 600 000 Kč Díky |
||
Chamurappi Profil |
#2 · Zasláno: 30. 9. 2014, 21:21:08
Reaguji na Prefina:
„Nevkládá tam JQuery nějaký jiný bíly znak?“ To je podivná otázka v kategorii PHP. Já bych řekl, že tam jQuery nevkládá vůbec žádné znaky, protože metoda toLocaleString není v jQuery.
„Zformátované číslo má tvar“ Ne nutně. „jsem se zasekl na převedení čísla z formátu měny do zase čistého“ Proč to děláš? |
||
Prefin Profil |
#3 · Zasláno: 1. 10. 2014, 07:24:40
Chamurappi:
> „Nevkládá tam JQuery nějaký jiný bíly znak?“ > To je podivná otázka v kategorii PHP. > Já bych řekl, že tam jQuery nevkládá vůbec žádné znaky, protože metoda toLocaleString není v jQuery. Aby to formátovalo, musím načítat v hlavičce <script src="js/jquery.js"></script> <script src="js/jquery-ui.js"></script> Dvě další reakce nechápu. Když chci číslo zobrazit jako měnu, musí být tak zformátované. Když s ním ale chci dále pracovat a uložit ho, potřebuji, aby to bylo zase pouze číslo 2600000, protože potom následují další matematické výpočty. Mě to nepřijde jako hloupé. Řekl bych, že to sem patří, protože potřebuji odstranění přebytečných znaků udělat v php. Zkoušel jsem to vykrájet pomocí SubStr což funguje, ale přijde mi to zbytečně složité a neřeší to otázku proč se to děje. Díky |
||
Alphard Profil |
#4 · Zasláno: 1. 10. 2014, 07:34:53
Vhodné by bylo uložit si původní číslo (v normální číselné reprezentaci bez zvláštního formátování) někam stranou a dále pracovat s tímto. Formátovaná verze se použije pouze pro zobrazení uživateli.
|
||
juriad Profil |
Prefin:
Chamurappi chtěl naznačit, že formátování čísla závisí na uživateli, který stránku navštíví. Když tam přijde marťan, tak to číslo může být vypsané třeba ve třináctkové soustavě a pozpátku, protože tak se na Marzu čísla zapisují. Jak radí Alphard, použij jiný input pro zobrazení hodnoty uživateli. Pokud to máš jako input ve formuláři, nedávej mu name, nebude se odesílat. A vedle něj přidej nový <input type=hidden> se správným jménem, který je určený ke strojovému zpracování pozemským PHP.
|
||
Prefin Profil |
#6 · Zasláno: 1. 10. 2014, 08:22:51
Aha, to mě nenapadlo, chyba.
Řešení s hidden je lepší - proč dělat něco, co se dělat nemusí. Občas není špatné zjistit, že je člověk úplný id*ot. Sorry za zbytečné vlákno |
||
Joker Profil |
#7 · Zasláno: 1. 10. 2014, 09:54:35
Prefin:
„Sorry za zbytečné vlákno“ Jestli vyřešilo problém, nebylo zbytečné ;-) |
||
Chamurappi Profil |
#8 · Zasláno: 1. 10. 2014, 10:06:04
Reaguji na Prefina:
Metoda toLocaleString() je součást JavaScriptu, není z žádného frameworku.
Minimálně Explorer do verze 10 včetně vrací jiný formát než nové prohlížeče, takže spoléhat na nějakou konkrétní reprezentaci opravdu není moudré. Ani pro účely zobrazování čísla uživateli bych ji nepoužíval. Chceš-li oddělit řády mezerami, převeď číslo na řetězec a použij tento replace s regulárem.
|
||
Časová prodleva: 9 let
|
0