Tilføj seperationstegn

Tags:    javascript php

Hej
Jeg sidder med et lille problem som jeg ikke helt kan finde løsningen på.
Jeg er igang med at bygge et site hvor man kan oprette sin bolig og her er der diverse felter til priser. Dog er der et lille problem, da der findes folk der kan finde på at skrive 10000000 og regner med at den selv laver det om til 10.000.000. Dette vil jeg godt afhjælpe og jeg er klar over at jeg skal bruge javascript for at påvirke brugerens indtastning mens de ser siden. Jeg fandt noget på nettet, men det rettede kun problemet med at vise indtastningen korrekt, men ændrede ikke på den værdi der bliver sendt til det bagvedliggende php-script der skal gemme det hele i databasen.
Er det muligt at bygge/finde et javascript der kan tilføje seperationstegn mens brugeren skriver tallet ind, eller blot rette det til når brugeren forlader input-feltet, men samtidig skal den jo ændre på værdien i value-attributten, således at når brugeren trykker på "Gem bolig", så er det værdien med seperationstegn, som sendes til php-scriptet og derved gemmes i databasen.



3 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Det vil være bedst kun at gemme tal uden nogen punktummer eller kommaer.
Også når du har hentet data fra databasen så tilføjer du selv tegn så du er sikker på at få ens resultat.

Prøv og kig på number_format() funktionen i PHP manualen.

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 27.10.2012 23:38 af Bruger #13010
>Det vil være bedst kun at gemme tal uden nogen punktummer eller kommaer.
enig

hvis du vil bruge js til formatering
http://phpjs.org/functions/number_format/ <-- number_format
http://www.mredkj.com/javascript/numberFormat.html <-- toFixed
og så kalde functionen onblur, på din indput felt

med XSLT
http://stackoverflow.com/questions/9372624/formatting-a-number-as-currency-using-css <-- use XSLT
http://www.w3schools.com/xsl/func_formatnumber.asp <-- use XSLT




Du skal aldrig have tusind-separator i tal-typer. De hører ikke hjemme der. (Når du gemmer dem altså, du kan sagtens tilføje dem når du viser det til brugeren)

Komma (decimal-separator) kan du godt have, men så bliver det en float-type, og de er ikke altid 100% præcise. Fx. så vil 2/3 * 3 ikke nødvendigvis give 2, men 1,99999999 til 2,0000001 agtigt.

Derfor skal du altid gemme i int datatyper i cents (eller en mindre enhed) når du har med beløb at gøre. For eksempel med danske kroner, så vil du gemme beløbet som øre.



Indlæg senest redigeret d. 28.10.2012 12:49 af Bruger #17015
t