johnpieters
Gebruiker
- Lid geworden
- 29 jan 2007
- Berichten
- 7
Dank jullie wel!
Hier ben ik een stuk verder mee gekomen!
Hier ben ik een stuk verder mee gekomen!
Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Winkelwagentje</title>
<script type="text/javascript">
function optellen() {
var f = document.f, totaal = 0;
for (var i = 0; i < f.item.length; i++) if (f.item[i].checked) totaal += parseFloat(f.item[i].value);
f.totaal.value = '€ ' + totaal.toFixed(2).replace('.',',');
};
</script>
<style type="text/css">
body {font: bold 13px Verdana;}
</style>
</head>
<body>
<form name="f">
<input type="checkbox" name="item" onclick="optellen()" value=" 1.20 naam 01001"> Product 1 € 1,20<br>
<input type="checkbox" name="item" onclick="optellen()" value=" 5.00 naam 02002"> Product 2 € 5,-<br>
<input type="checkbox" name="item" onclick="optellen()" value=" 6.99 naam 03003"> Product 3 € 6,99<br>
<input type="checkbox" name="item" onclick="optellen()" value=" 0.50 naam 04004"> Product 4 € 0,50<br>
<input type="checkbox" name="item" onclick="optellen()" value="80.00 naam 05005"> Product 5 € 80,-<br>
Totaal: <input type="text" name="totaal" readonly>
</form>
</body>
</html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Winkelwagentje</title>
<script type="text/javascript">
function optellen() {
var f = document.f, e = f.elements, totaal = 0;
for (var i = 0; i < e.length; i++) if (e[i].type == 'checkbox' && e[i].checked) totaal += parseFloat(e[i].value);
f.totaal.value = '€ ' + totaal.toFixed(2).replace('.',',');
};
</script>
<style type="text/css">
body {font: bold 13px Verdana;}
</style>
</head>
<body>
<form name="f">
<input type="checkbox" name="item1" onclick="optellen()" value=" 1.20 naam 01001"> Product 1 € 1,20<br>
<input type="checkbox" name="item2" onclick="optellen()" value=" 5.00 naam 02002"> Product 2 € 5,-<br>
<input type="checkbox" name="item3" onclick="optellen()" value=" 6.99 naam 03003"> Product 3 € 6,99<br>
<input type="checkbox" name="item4" onclick="optellen()" value=" 0.50 naam 04004"> Product 4 € 0,50<br>
<input type="checkbox" name="item5" onclick="optellen()" value="80.00 naam 05005"> Product 5 € 80,-<br>
Totaal: <input type="text" name="totaal" readonly>
</form>
</body>
</html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Winkelwagentje</title>
<script type="text/javascript">
function optellen() {
var f = document.f, e = f.elements, totaal = 0;
for (var i = 0; i < e.length; i++) if (e[i].type == 'checkbox' && e[i].checked) totaal += parseFloat(e[i].value);
f.subtotaal.value = '€ ' + totaal.toFixed(2).replace('.',',');
f.btw.value = '€ ' + (totaal * 0.19).toFixed(2).replace('.',',')
f.totaal.value = '€ ' + (totaal * 1.19).toFixed(2).replace('.',',')
};
</script>
<style type="text/css">
body, td, input {font: bold 13px Verdana;}
</style>
</head>
<body onLoad="optellen()">
<form name="f" method="post">
<input type="checkbox" name="item1" onclick="optellen()" value=" 1.20 naam 01001"> Product 1 € 1,20<br>
<input type="checkbox" name="item2" onclick="optellen()" value=" 5.00 naam 02002"> Product 2 € 5,-<br>
<input type="checkbox" name="item3" onclick="optellen()" value=" 6.99 naam 03003"> Product 3 € 6,99<br>
<input type="checkbox" name="item4" onclick="optellen()" value=" 0.50 naam 04004"> Product 4 € 0,50<br>
<input type="checkbox" name="item5" onclick="optellen()" value="80.00 naam 05005"> Product 5 € 80,-<br>
<table>
<tr>
<td>Subtotaal:</td><td><input type="text" name="subtotaal" readonly></td>
</tr>
<tr>
<td>BTW (19%):</td><td><input type="text" name="btw" readonly></td>
</tr>
<tr>
<td>Totaal:</td><td><input type="text" name="totaal" readonly></td>
</tr>
</table>
<input type="submit" value="Verzenden">
</form>
</body>
</html>
Misschien nog een leuke variatie:
Het maakt gebruik van het feit dat als je meerdere formuliervelden dezelfde naam geeft dat ze een array vormen. isNaN (is not a number) wordt alleen bij de sum toegepast.PHP:<html> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> <title>Waarden optellen</title> <script type="text/javascript"> function sumup() { var sum = 0; for (var i = 0; i < document.f.field.length; i++) sum += parseFloat(document.f.field[i].value); document.getElementById("sum").innerHTML = (isNaN(sum) ? 'Geen getal.' : sum); }; </script> <style type="text/css"> body {font: bold 13px Verdana;} </style> </head> <body onload="sumup()"> <form name="f"> Veld 1: <input name="field" type="text" size="3" value="0" onkeyup="sumup();"><br> Veld 2: <input name="field" type="text" size="3" value="0" onkeyup="sumup();"><br> Veld 3: <input name="field" type="text" size="3" value="0" onkeyup="sumup();"><br> Veld 4: <input name="field" type="text" size="3" value="0" onkeyup="sumup();"><br> Veld 5: <input name="field" type="text" size="3" value="0" onkeyup="sumup();"><br> Veld 6: <input name="field" type="text" size="3" value="0" onkeyup="sumup();"><br> </form> Totaal: <span id="sum"></span> </body> </html>
Vr.Gr. Egel.
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Waarden optellen</title>
<script type="text/javascript">
function sumup() {
var sum = 0;
for (var i = 0; i < document.f.getElementsByTagName("input").length; i++) sum += (document.f.getElementsByTagName("input")[i].getAttribute("type") == "text" ? parseFloat(document.f.getElementsByTagName("input")[i].value) : 0);
document.getElementById("sum").innerHTML = (isNaN(sum) ? 'Geen getal.' : sum);
};
</script>
<style type="text/css">
body {font: bold 13px Verdana;}
</style>
</head>
<body onload="sumup()">
<form name="f">
Veld 1: <input name="field[]" type="text" size="3" value="0" onkeyup="sumup();"><br>
Veld 2: <input name="field[]" type="text" size="3" value="0" onkeyup="sumup();"><br>
Veld 3: <input name="field[]" type="text" size="3" value="0" onkeyup="sumup();"><br>
Veld 4: <input name="field[]" type="text" size="3" value="0" onkeyup="sumup();"><br>
Veld 5: <input name="field[]" type="text" size="3" value="0" onkeyup="sumup();"><br>
Veld 6: <input name="field[]" type="text" size="3" value="0" onkeyup="sumup();"><br>
<input type="submit" value="Verzenden">
</form>
Totaal: <span id="sum"></span>
</body>
</html>
<input type="text" id="sum" name="sum" value="" />
document.getElementById("sum").innerHTML = (isNaN(sum) ? 'Geen getal.' : sum);
document.getElementById("sum").value = (isNaN(sum) ? 'Geen getal.' : sum);
Dat is mogelijk ja. Ik heb even iets gemaakt, ik hoop dat je het zo ongeveer bedoelt.
HTML:<!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=iso-8859-1" /> <title>Waarden optellen</title> <script> var total = 0; function update(checkbox){ if(checkbox.checked){ total += parseFloat(checkbox.value); } else { total -= parseFloat(checkbox.value); }; document.getElementById("total").innerHTML = "€ " + total.toFixed(2).replace(".", ","); }; </script> </head> <body> <table> <tr><td width="30"></td><td width="200"><b>Product</b></td><td width="100"><b>Prijs</b></td></tr> <tr><td><input type="checkbox" value="1.2" onclick="update(this);" /> </td><td>Product 1</td><td>€ 1,20</td></tr> <tr><td><input type="checkbox" value="5" onclick="update(this);" /> </td><td>Product 2</td><td>€ 5,-</td></tr> <tr><td><input type="checkbox" value="6.99" onclick="update(this);" /></td><td>Product 3</td><td>€ 6,99</td></tr> <tr><td><input type="checkbox" value="0.5" onclick="update(this);" /> </td><td>Product 4</td><td>€ 0,50</td></tr> <tr><td><input type="checkbox" value="80" onclick="update(this);" /> </td><td>Product 5</td><td>€ 80,-</td></tr> <tr><td></td><td><b>Totaal:</b></td><td id="total">€ 0,00</td></tr> </table> </body> </html>
Te gek, werkt prima,
bedankt voor de snelle hulp![]()
Je doet het heel netjes moet ik zeggen, dus ik laat hem staanen welkom!
Welke browser gebruik je? De vinkjes zouden eigenlijk net als de ingevoerde waarden "vergeten" moeten worden.
Meer ontopic: in plaats van steeds van het al berekende totaal uit te gaan lijkt het me beter om het totaal helemaal nieuw te berekenen. Dus, even in woorden, om bij elke keer dat er een vinkje verandert weer helemaal opnieuw te checken welke bedragen er aangevinkt zijn en dan die bij elkaar op te tellen. Krijg je dat voor mekaar denk je?
edit -- ik heb je opmerking "ik heb zelf niet veel verstand van Javascript" even over het hoofd gezien, maar ik zal straks wat fabriceren
<!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=iso-8859-1" />
<title>Waarden optellen</title>
<script>
<!--
function update() {
var total = 0; // teller resetten
var input = document.getElementsByTagName("input"); // alle inputvelden verzamelen
for (var i = 0; i < input.length; i++) {
total += input[i].checked ? parseFloat(input[i].getAttribute("value")) : 0; // waarden van aangevinkte checkboxen optellen
}
document.getElementById("total").innerHTML = "€ " + total.toFixed(2).replace(".", ","); // netjes met komma weergeven
};
-->
</script>
</head>
<body>
<table>
<tr><td width="30"></td><td width="200"><b>Product</b></td><td width="100"><b>Prijs</b></td></tr>
<tr><td><input type="checkbox" value="1.2" onclick="update();" /> </td><td>Product 1</td><td>€ 1,20</td></tr>
<tr><td><input type="checkbox" value="5" onclick="update();" /></td><td>Product 2</td><td>€ 5,-</td></tr>
<tr><td><input type="checkbox" value="6.99" onclick="update();" /></td><td>Product 3</td><td>€ 6,99</td></tr>
<tr><td><input type="checkbox" value="0.5" onclick="update();" /></td><td>Product 4</td><td>€ 0,50</td></tr>
<tr><td><input type="checkbox" value="80" onclick="update();" /></td><td>Product 5</td><td>€ 80,-</td></tr>
<tr><td></td><td><b>Totaal:</b></td><td id="total">€ 0,00</td></tr>
</table>
</body>
</html>
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.