punt vervangen door comma
Ik heb een vraagje over onderstaande code. Ik heb gelukkig voor elkaar gekregen dat er doormiddel van een javascript het totaal bedrag wordt berekend, echter laat hij de notatie xx,xxx.xx zie ipv xx.xxx,xx
ik heb verschillende scripts geprobeerd maar krijg het niet voor elkaar om het in deze situatie goed weer te geven.
kan iemand mij helpen.
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
<link rel="stylesheet" type="text/css" media="all" href="jsDatePick_ltr.min.css" />
<script type="text/javascript" src="jquery.1.4.2.js"></script>
<script type="text/javascript" src="jsDatePick.jquery.min.1.3.js"></script>
<script type="text/javascript">
/*=============================================================================*/
/*Onderstaande wordt gebruikt voor de het aanvullen van de eenheidsprijs na selectie*/
/*=============================================================================*/
function autofill(str)
{
if (str=="")
{
document.getElementById("eenheidsprijs").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("eenheidsprijs").value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","art_bestelformulier_autofill.php?q="+str,true);
xmlhttp.send();
}
/*=============================================================================*/
/*Onderstaande wordt gebruikt voor de agenda*/
/*=============================================================================*/
window.onload = function(){
new JsDatePick({
useMode:2,
target:"inputField",
dateFormat:"%d-%m-%y"
});
};
/*=============================================================================*/
/*Onderstaande wordt gebruiker voor het berekenen van het totaalbedrag*/
/*=============================================================================*/
function totalise() {
var qtd = document.getElementById('aantal').value;
var price = document.getElementById('eenheidsprijs').value;
var result = document.getElementById("total");
result.value = (price * qtd).toFixed(2);
}
</script>
</head>
<body>
<form name="bestelformulier" action="art_insert_bestelformulier.php" method="post">
<table border="1">
<tr>
<td>Datum:</td>
<td><input type="text" size="12" id="inputField" name="art_leverdatum" /></td>
</tr>
<tr>
<td>Broodsoort:</td>
<td>
<select name="art_nr" onchange="autofill(this.value); totalise()">
<option value="">Maak uw keuze..</option>
<?php
$conn=odbc_connect('odbc_db','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$query = "SELECT art_omschrijving, art_nr FROM artikelen_assortiment";
$result = odbc_exec($conn, $query);
while ($data = odbc_fetch_array($result)){
?>
<option value="<?php echo $data['art_nr']; ?>"><?php echo $data['art_omschrijving']; ?></option> <?php } ?>
</select>
</td>
</tr>
<tr>
<td>Aantal:</td>
<td>
<select id="aantal" onChange="totalise()" name="art_aantal">
<option value="0">Selecteer het aantal</option>
<?php
$aantal=0;
do {
$aantal++;
echo "<option value='".$aantal."'>".$aantal."</option>";
}
while ($aantal<=19);
odbc_close($conn);
?>
</select>
</td>
</tr>
<tr>
<td>Prijs per eenheid</td>
<td>
<input id="eenheidsprijs" onChange="totalise()" type="text" name="art_eenheidsprijs" disabled="disabled" />
</td>
</tr>
<tr>
<td>Totaal prijs:</td>
<td><input id="total" type="text" name="art_totaalprijs" /></td>
</tr>
<tr>
<td align="right"><input type="reset" value="Reset" /></td>
<td><input type="submit" value="Bestelling Plaatsen" /></td>
</tr>
</table>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
<link rel="stylesheet" type="text/css" media="all" href="jsDatePick_ltr.min.css" />
<script type="text/javascript" src="jquery.1.4.2.js"></script>
<script type="text/javascript" src="jsDatePick.jquery.min.1.3.js"></script>
<script type="text/javascript">
/*=============================================================================*/
/*Onderstaande wordt gebruikt voor de het aanvullen van de eenheidsprijs na selectie*/
/*=============================================================================*/
function autofill(str)
{
if (str=="")
{
document.getElementById("eenheidsprijs").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("eenheidsprijs").value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","art_bestelformulier_autofill.php?q="+str,true);
xmlhttp.send();
}
/*=============================================================================*/
/*Onderstaande wordt gebruikt voor de agenda*/
/*=============================================================================*/
window.onload = function(){
new JsDatePick({
useMode:2,
target:"inputField",
dateFormat:"%d-%m-%y"
});
};
/*=============================================================================*/
/*Onderstaande wordt gebruiker voor het berekenen van het totaalbedrag*/
/*=============================================================================*/
function totalise() {
var qtd = document.getElementById('aantal').value;
var price = document.getElementById('eenheidsprijs').value;
var result = document.getElementById("total");
result.value = (price * qtd).toFixed(2);
}
</script>
</head>
<body>
<form name="bestelformulier" action="art_insert_bestelformulier.php" method="post">
<table border="1">
<tr>
<td>Datum:</td>
<td><input type="text" size="12" id="inputField" name="art_leverdatum" /></td>
</tr>
<tr>
<td>Broodsoort:</td>
<td>
<select name="art_nr" onchange="autofill(this.value); totalise()">
<option value="">Maak uw keuze..</option>
<?php
$conn=odbc_connect('odbc_db','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$query = "SELECT art_omschrijving, art_nr FROM artikelen_assortiment";
$result = odbc_exec($conn, $query);
while ($data = odbc_fetch_array($result)){
?>
<option value="<?php echo $data['art_nr']; ?>"><?php echo $data['art_omschrijving']; ?></option> <?php } ?>
</select>
</td>
</tr>
<tr>
<td>Aantal:</td>
<td>
<select id="aantal" onChange="totalise()" name="art_aantal">
<option value="0">Selecteer het aantal</option>
<?php
$aantal=0;
do {
$aantal++;
echo "<option value='".$aantal."'>".$aantal."</option>";
}
while ($aantal<=19);
odbc_close($conn);
?>
</select>
</td>
</tr>
<tr>
<td>Prijs per eenheid</td>
<td>
<input id="eenheidsprijs" onChange="totalise()" type="text" name="art_eenheidsprijs" disabled="disabled" />
</td>
</tr>
<tr>
<td>Totaal prijs:</td>
<td><input id="total" type="text" name="art_totaalprijs" /></td>
</tr>
<tr>
<td align="right"><input type="reset" value="Reset" /></td>
<td><input type="submit" value="Bestelling Plaatsen" /></td>
</tr>
</table>
</form>
</body>
</html>
PS. Mijn javascript skills zijn niet best.
bvd
Gewijzigd op 14/03/2012 13:49:57 door Luke van Dommelen
Weet je wel zeker dat het in dit script gebeurt?
Gerhard l op 14/03/2012 13:53:51:
Weet je wel zeker dat het in dit script gebeurt?
Wat bedoelt u? of het bedrag berekend wordt? of dat de . naar een , moet.
ik heb de codes waarmee ik het geprobeerd heb weg gelaten ivm vervuiling in de code. maar het zou in dit script moeten gaan gebeuren.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function totalise() {
var qtd = document.getElementById('aantal').value;
var price = document.getElementById('eenheidsprijs').value;
var result = document.getElementById("total");
var total = (price * qtd).toFixed(2);
result.value = total.replace(",", ".");
}
var qtd = document.getElementById('aantal').value;
var price = document.getElementById('eenheidsprijs').value;
var result = document.getElementById("total");
var total = (price * qtd).toFixed(2);
result.value = total.replace(",", ".");
}
http://www.w3schools.com/jsref/jsref_replace.asp
Gewijzigd op 14/03/2012 14:19:27 door gerhard l
de code die jij poste was bijna goed. de punt en comma moeten omgedraaid worden.
de code die jij post is
maar het moet zijn
Gewijzigd op 14/03/2012 14:35:43 door Luke van Dommelen
xx,xxx.xx
veranderd in dit:
xx,xxx,xx
En hoe ga je dan de juiste , weer vervangen met een .?
Erwin H op 14/03/2012 14:38:29:
Weet je zeker dat dat werkt? Want dan wordt dit:
xx,xxx.xx
veranderd in dit:
xx,xxx,xx
En hoe ga je dan de juiste , weer vervangen met een .?
xx,xxx.xx
veranderd in dit:
xx,xxx,xx
En hoe ga je dan de juiste , weer vervangen met een .?
Ja dat is eigelijk een goeie.. zover had ik de code nog niet bekeken en getest. op het moment maakt hij er xxxxx,xx van. maar dit is eigenlijk voor mij voldoende.
Toevoeging op 14/03/2012 14:50:58:
En dan mijn 2e vraag hoe kan ik er dan voor zorgen dat de eenheidsprijs (zie code hier onder) ook de . wordt vervangen door een comma. Hier wordt namelijk niet met var gewerkt.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function autofill(str)
{
if (str=="")
{
document.getElementById("eenheidsprijs").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("eenheidsprijs").value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","art_bestelformulier_autofill.php?q="+str,true);
xmlhttp.send();
}
{
if (str=="")
{
document.getElementById("eenheidsprijs").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("eenheidsprijs").value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","art_bestelformulier_autofill.php?q="+str,true);
xmlhttp.send();
}
Niemand een idee?
number_format(getal , decimalenaantal , scheidingsteken voor decimalen, scheidingsteken voor 1000tallen)
zou moeten werken.
bijv
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$getal = 1234.9999
number_format($getal,'2',',','.');
// uitkomst = 1.234,99
number_format($getal,'3','.',',');
// uitkomst = 1,234.999
?>
$getal = 1234.9999
number_format($getal,'2',',','.');
// uitkomst = 1.234,99
number_format($getal,'3','.',',');
// uitkomst = 1,234.999
?>
ik hoop dat dit is wat je zoekt?
Albert de Wit: het gaat om javascript code en niet om php... als je mij kan vertellen hoe ik mijn javascript variable om kan zetten naar een php variable en vervolgens de rest van mijn script om het totaaledrag uit te rekenen blijft werken.... graag :)
Gewijzigd op 15/03/2012 16:13:18 door Luke van Dommelen
kun je niet met javascrip een <input type='hidden'> een value geven en dan omtoveren naar php?
Het lijkt me niet dat dat gaat werken, ik ben ook een leek, maar php voert pas uit wanneer er van pagina verlaat, en omdat het gaat om een directe wijziging (door bijvoorbeeld een selectbox) moet het bij de onchange meteeen uitgevoerd worden en naar mijn weten gaat dit niet met php.
Code (php)
1
2
3
4
5
2
3
4
5
function jsNumberFormat(aString) {
splitted = aString.split(aString, '.');
splitted[0] = splitted[0].replace(',', '.');
return splitted.join(',');
}
splitted = aString.split(aString, '.');
splitted[0] = splitted[0].replace(',', '.');
return splitted.join(',');
}
Gewijzigd op 15/03/2012 18:40:01 door Ger van Steenderen
Weet je toevallig ook hoe ik dat kan verwerken bij de function autofill()
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function autofill(str)
{
if (str=="")
{
document.getElementById("eenheidsprijs").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("eenheidsprijs").value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","art_bestelformulier_autofill.php?q="+str,true);
xmlhttp.send();
}
{
if (str=="")
{
document.getElementById("eenheidsprijs").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("eenheidsprijs").value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","art_bestelformulier_autofill.php?q="+str,true);
xmlhttp.send();
}
De gegevens bij autfill wordt ook nog een keer gebruikt bij totalise()