Gå til innhold

Tallformatering av tekstfelt


Anbefalte innlegg

Litt usikker på hvilket forum dette passer best i, men siden jeg jobber med PHP satser jeg her.

 

Har laget til en database for lag til det kommende FM2005-spillet, og skal legge inn info om alle lagene, bl.a. hvor mye penger hvert lag starter med, tilskuerkapasitet på stadion etc. Da hadde det vært greit om jeg fikk tusenskilletegn (fx 20 000 istedet for 20000). Jeg fikk det til med number_format, men da vil det bare vises om det blir sendt til serveren først, ikke når man skriver det inn i tekstfeltet. Hvordan kan dette løses?

Lenke til kommentar
Videoannonse
Annonse

Hvet ikke om dette går, men i de feltene du har tall, f.eks tilskuer plass:

$tilskuerplass = "45000";

 

$tilskuerplass = str_replace("000", ".000", $tilskuerplass);

eller

$tilskuerplass = str_replace("000", " 000", $tilskuerplass); (mellomrom)

 

Det vil gi 45.000 eller 45 000, istedenfor 45000

 

Men dette gjelder selfølgelig bare for runde tall, det vil si hele tusener, milioner osv.

Endret av robgar
Lenke til kommentar

Det vil nok ikke fungere siden det må sendes til server først. Det bør bli formatert enten mens man skriver det, eller når man går til neste felt.

 

????????, hvordan gjøres dette i JS?

Hvor skal det skrives for at det fungerer i et tekstfelt?

Lenke til kommentar

Det er ikke noe problem å skrive i JavaScript, ta en kikk på denne. Har skrevet den i full fart så det er sikkert rom for forbedringer, skrev spesielt den delen som hindrer at det blir satt inn et blankt tegn i starten litt enkelt - men det fungerer.

 

 

<script language="javascript">

function tallformat(verdi){

 

var tmp_verdi = "";

var count = 0;

var part = "";

 

for( var i = verdi.length; i >= 0; i-- ){

 part = verdi.substring(i-1, i);

 if(part != " "){

   if(count == 3){

     tmp_verdi = part + " " + tmp_verdi;

     count = 1;

   }else{

     tmp_verdi = part + tmp_verdi;

     count++;

   }

 }

}

 

if(tmp_verdi.substr(0,1) == " "){

 tmp_verdi = tmp_verdi.substr(1, tmp_verdi.length);

}

 

skjema.felt.value = tmp_verdi;

 

 

}

</script>

 

 

<form name="skjema">

<input type="text" name="felt" OnKeyDown="tallformat(skjema.felt.value)" OnKeyUp="tallformat(skjema.felt.value)">

</form>

 

 

Tilpass den teksten som er merket med rødt. Scriptet burde plasseres i head på siden. Håper den fungerer som du ønsker :)

Endret av ????????
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...