Avatar billede kredefrapuls Nybegynder
30. maj 2005 - 13:08 Der er 15 kommentarer og
1 løsning

kun et punktum i streng

Jeg har en form hvor jeg bla. skal gemme en pris i ne mySQL database med som decimal(2) som også virker fint vis ikke der er mere end 1 punktum.
Så jeg skal bruge et script der kan fjerne alle punktummerene og kun lade det sidste være...
Avatar billede expnet Seniormester
30. maj 2005 - 13:13 #1
Jamen er der virker mennsker det ikke ved hvad decimal er siden der er flere punktummer :P
Avatar billede avminarm Juniormester
30. maj 2005 - 13:14 #2
du kan prøve at dele strengen op med explode og så sætte strengen sammen igen kun med punktum til sidst
Avatar billede kredefrapuls Nybegynder
30. maj 2005 - 13:17 #3
expnet:
jamen folk deler nogle gange prisen eks: 1.000,95

avminarm:
hvordan explode'er man..... er nybegynder....
Avatar billede expnet Seniormester
30. maj 2005 - 13:25 #4
jamen så er det jo måske begge du skal kigge after eller havd???
Avatar billede ldanielsen Nybegynder
30. maj 2005 - 13:25 #5
Hvad med at erstatte punktum med ingenting, og derefter erstatte komma med punktum. Vi må da gå ud fra at folk bruger komma som skilletegn, ikke?
Avatar billede avminarm Juniormester
30. maj 2005 - 13:32 #6
det aller nemmeste er vel at folk kun kan skrive tilladte værdier i dit indput felt - en god regel er at man ikke skal tillade at brugeren skriver noget de ikke må.

explode:
hvis du nu har en variabel: $belob = "1.000,95";

$exp = explode(".", $belob); // deler variablen op i et array

du har herefter $exp[0] og $exp[1] og der er lige med:
$exp[0] = 1 og $exp[1] = 000,95

dem kan du sætte sammen igen - sådan her: $nybelob = $exp[0].$exp[1];

men som sagt tideligere ville jeg gå efter at begrænse hvad der kan skriver i formularen - evt dele  op på to felter et til kr og et til øre.
Avatar billede expnet Seniormester
30. maj 2005 - 13:33 #7
$txt = "1.000,95";
$str = str_replace(".","",$txt);
$str = str_replace(",",".",$str);

// udskriver 1000.95
echo $str;
Avatar billede avminarm Juniormester
30. maj 2005 - 13:34 #8
Idanielsen>> Danmark et et af de få lande der benytter komma som skilletegn - så man kan ikke bare gå ud fra det
Avatar billede avminarm Juniormester
30. maj 2005 - 13:36 #9
$expnet>> hvad så hvis brugeren skriver: 1000.95
Avatar billede kredefrapuls Nybegynder
30. maj 2005 - 13:49 #10
ja fordi hvis jeg gemmer den som 100,95 for jeg en fejl da mysql kun godtar . som decimal tegn....
Avatar billede avminarm Juniormester
30. maj 2005 - 21:18 #11
hvis jeg var dig - ville jeg smutte over i javascript kategorien og få hjælp til en regexp som sørger for at man kun kan fylde det format i feltet som du vil have ;-)
Avatar billede ldanielsen Nybegynder
30. maj 2005 - 21:57 #12
Jeg laver kun sider til danskere, og jeg forventer at de bruger komma. Hvis din side er international, og du vil tillade at man bruger enten punktum eller komma, så tror jeg det bliver lidt svært.
Avatar billede kredefrapuls Nybegynder
31. maj 2005 - 08:38 #13
jeg går lige over og ser hvad der er af ting i java script...
Avatar billede avminarm Juniormester
31. maj 2005 - 09:02 #14
Idanielsen>> ikke for at være "næbbet" - men hvordan kan du vide at det kun er danskere der ser/bruger på de sider du laver, man kan jo godt være f.eks amerikaner eller lignende og så bo her i DK?
Avatar billede ldanielsen Nybegynder
31. maj 2005 - 10:27 #15
Det kan jeg heller ikke. Men hvis sproget er dansk på siden, så vil det jo kun være dansktalende der kan bruge den.

Men skal man tillade både komma og punktum må reglen være:
Der må være 0 eller 1 skilletegn, og dette skal være enten komma eller punktum, og det skal være max to cifre fra slutningen. På serveren skal kredefrapuls så bare erstatte komma med punktum, så kører det
Avatar billede kredefrapuls Nybegynder
01. juni 2005 - 08:51 #16
jeg fandt selv et java script der virker, så det må værer avminarm der skal havde pointne.....

i kan lige få koden her:

<SCRIPT LANGUAGE="JavaScript">
function tjeck(f){
  if(!f.txtpris.value!=""){
      alert('Du har ikke angivet en pris');
      f.txtoverskrift.focus();
      return false
  }else{
      reg = /^\d+(,\d{1,2})?$/;
      if(!f.txtpris.value.match(reg)){
        alert('Du har indtastet prisen i et forkert format\n Feltet skal stå med tal            og , som decimal og kun 2 decimaler er tilladt');
        f.txtpris.focus();
        return false
      }       
  }
}   
</script>

---------

<form name="frmoprettilbud" method="post" onsubmit="return tjeck(this)" action="funk.php?ID=4" enctype="multipart/form-data">
  <input type="text" name="txtpris" maxlength="13" style="width: 200px">
</form>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester