<input type='text' name='prijs' size=1>
Ik heb verschillende gebruikers die bij het invoeren van een prijs zich vergissen door een komma (,) te gebruiken in plaats van een punt(.) voor een bedrag met decimalen.
Hoe kan ik beletten dat ze een komma (,) gebruiken in plaats van een punt (.)
Sommigen vullen de prijs ook zo in
1.000,000
dus daar worden beiden gebruikt maar terug verkeerd.
Ik heb reeds gekeken bij vorige topics en op andere sits dat ik ken maar niks gevonden
Met vriendelijke groeten,
Marc
Als ik het goed begrijp moet ik gewoon
$_POST['prijs'] zou gelijk zijn aan 4,453
$prijs zou dan gelijk zijn aan 4.453
Maar wat dan met 1.000,05?
Met vriendelijke groeten,
Marc
Na wat testen en zoekwerk heb ik het zelf gevonden. Dus voor degene die het kunnen gebruiken zet hier ik mijn programmatje om de komma weg te halen en te vervangen door een punt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
/* TEST is een bedrag dat in en vorig programma is ingevuld */
$test = $_POST['TEST'];
$tst = strlen($test);
$tst1 = substr($test,($tst-2),1);
/* nazien indien er 1 cijfer na de komma zijn */
if ($tst1 === ',')
{
$testx = substr($test,0,($tst-2));
$testy = substr($test,-1);
$testz = $testx.".".$testy;
/* de decimalekomma is gewijzigt in een decimalepunt */
echo $testz;
$tst4 = substr($testz,($tst-6),1);
if ($tst > 5)
{
if ($tst4 === '.')
{
$testa = substr($testz,0,($tst-6));
echo "<br><br>".$testa;
$testb = substr($testz,-5);
/* de punt bij een duizendtal is verwijderd */
$testc = $testa.$testb;
}
}
}
$tst2 = substr($test,($tst-3),1);
/* nazien indien er 2 cijfers na de komma zijn */
if ($tst2 === ',')
{
$testx = substr($test,0,($tst-3));
$testy = substr($test,-2);
$testz = $testx.".".$testy;
/* de decimalekomma is gewijzigt in een decimalepunt */
echo $testz;
$tst4 = substr($testz,($tst-7),1);
if ($tst > 6)
{
if ($tst4 === '.')
{
$testa = substr($testz,0,($tst-7));
echo "<br><br>".$testa;
$testb = substr($testz,-6);
/* de punt bij een duizendtal is verwijderd */
$testc = $testa.$testb;
}
}
}
$tst3 = substr($test,($tst-4),1);
/* nazien indien er 3 cijfers na de komma zijn */
if ($tst3 === ',')
{
$testx = substr($test,0,($tst-4));
$testy = substr($test,-3);
$testz = $testx.".".$testy;
/* de decimalekomma is gewijzigt in een decimalepunt */
echo $testz;
$tst4 = substr($testz,($tst-8),1);
if ($tst > 7)
{
if ($tst4 === '.')
{
$testa = substr($testz,0,($tst-8));
echo "<br><br>".$testa;
$testb = substr($testz,-7);
/* de punt bij een duizendtal is verwijderd */
$testc = $testa.$testb;
}
}
}
}
?>
/* TEST is een bedrag dat in en vorig programma is ingevuld */
$test = $_POST['TEST'];
$tst = strlen($test);
$tst1 = substr($test,($tst-2),1);
/* nazien indien er 1 cijfer na de komma zijn */
if ($tst1 === ',')
{
$testx = substr($test,0,($tst-2));
$testy = substr($test,-1);
$testz = $testx.".".$testy;
/* de decimalekomma is gewijzigt in een decimalepunt */
echo $testz;
$tst4 = substr($testz,($tst-6),1);
if ($tst > 5)
{
if ($tst4 === '.')
{
$testa = substr($testz,0,($tst-6));
echo "<br><br>".$testa;
$testb = substr($testz,-5);
/* de punt bij een duizendtal is verwijderd */
$testc = $testa.$testb;
}
}
}
$tst2 = substr($test,($tst-3),1);
/* nazien indien er 2 cijfers na de komma zijn */
if ($tst2 === ',')
{
$testx = substr($test,0,($tst-3));
$testy = substr($test,-2);
$testz = $testx.".".$testy;
/* de decimalekomma is gewijzigt in een decimalepunt */
echo $testz;
$tst4 = substr($testz,($tst-7),1);
if ($tst > 6)
{
if ($tst4 === '.')
{
$testa = substr($testz,0,($tst-7));
echo "<br><br>".$testa;
$testb = substr($testz,-6);
/* de punt bij een duizendtal is verwijderd */
$testc = $testa.$testb;
}
}
}
$tst3 = substr($test,($tst-4),1);
/* nazien indien er 3 cijfers na de komma zijn */
if ($tst3 === ',')
{
$testx = substr($test,0,($tst-4));
$testy = substr($test,-3);
$testz = $testx.".".$testy;
/* de decimalekomma is gewijzigt in een decimalepunt */
echo $testz;
$tst4 = substr($testz,($tst-8),1);
if ($tst > 7)
{
if ($tst4 === '.')
{
$testa = substr($testz,0,($tst-8));
echo "<br><br>".$testa;
$testb = substr($testz,-7);
/* de punt bij een duizendtal is verwijderd */
$testc = $testa.$testb;
}
}
}
}
?>
Ik hoop dat dit voor menig een oplossing zal zijn voor het probleem van de decimale komma
Bij deze denk ik dat deze topic dan ook kan afgesloten worden
Met vriendelijke groeten,
Marc
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
# Getal
$getal = '1.000,05';
# Splitsen op de ','
$exp = explode(',', $getal);
if (count($exp) > 1) {
# Alles filteren
for ($i = 0; $i < ( count($exp) - 1 ); $i++) {
$exp[$i] = str_replace(',', '', $exp[$i]);
$exp[$i] = str_replace('.', '', $exp[$i]);
}
# Plakken
for ($i = 0; $i < ( count($exp) - 1 ); $i++) {
$nieuwe_getal .= $exp[$i];
}
$nieuwe_getal .= '.' . $exp[count($exp) - 1];
} else {
# Niets wijzigen, geen ',' gevonden
$nieuwe_getal = $getal;
}
# Weergeven
echo $nieuwe_getal;
?>
# Getal
$getal = '1.000,05';
# Splitsen op de ','
$exp = explode(',', $getal);
if (count($exp) > 1) {
# Alles filteren
for ($i = 0; $i < ( count($exp) - 1 ); $i++) {
$exp[$i] = str_replace(',', '', $exp[$i]);
$exp[$i] = str_replace('.', '', $exp[$i]);
}
# Plakken
for ($i = 0; $i < ( count($exp) - 1 ); $i++) {
$nieuwe_getal .= $exp[$i];
}
$nieuwe_getal .= '.' . $exp[count($exp) - 1];
} else {
# Niets wijzigen, geen ',' gevonden
$nieuwe_getal = $getal;
}
# Weergeven
echo $nieuwe_getal;
?>
Heb ik net geknutseld... Is een hoopje korter dan het jouwe, en ik denk dat het ook doet wat jij wil...
Gewijzigd op 14/08/2005 19:08:00 door Alfred -