Pieter Arntz
Spywareslayer
- Lid geworden
- 12 aug 2001
- Berichten
- 15.621
Ik snap mijn eigen script niet meer. 
Tenminste niet waarom het soms zo raar doet.
Even uitleggen: de functie tidy heb ik geleend en verbouwd van http://www.katipo.co.nz/clients/helpdesk/javascript/js-clean_and_tidies.html
Wat er mis gaat is het volgende. De regel die behoort te controleren of er niet meer besteld wordt dan er in voorraad is, veranderd soms ook lagere bedragen naar het totaal dat in voorraad is. :shocked:
Vul in de eerste box 5 in en je begrijpt, denk ik, wel wat ik bedoel. Als ik dat doe maakt hij er 40 van.
Alvast bedankt voor enige hulpvolle suggesties.

Tenminste niet waarom het soms zo raar doet.
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="shortcut icon" href="favicon.ico" />
<script type="text/javascript">
function tidy (y){
max_length=9; //max_length= length of text input
spacing="€ ";
x=Math.floor(y);
xx=y-x;
xx=xx+"00.00" //xx=the cents only (with zeroes).
a=xx.indexOf(".");
q=x+xx.substring(a,a+3);
ql= (q.length<max_length)?(max_length-q.length):0;
r=(y)?spacing.substring(0,ql)+q:"";
return (r);
}
function bijmekaar() {
var bestelopties = document.bestelopties, sum = 0;
for (var i = 0; i < bestelopties.prijs.length; i++) {
var beneden = Math.floor(bestelopties.aantal[i].value);
var afgerond = Math.round(bestelopties.aantal[i].value);
if(bestelopties.aantal[i].value != beneden) {
bestelopties.aantal[i].value = afgerond;
}
if(bestelopties.aantal[i].value >= bestelopties.voorraad[i].value) {
bestelopties.aantal[i].value = bestelopties.voorraad[i].value;
}
sum += parseFloat(bestelopties.aantal[i].value * bestelopties.prijs[i].value.replace(',','.'));
}
sum1= (tidy(sum));
sum2= sum1.replace('.',',');
document.getElementById("sum").innerHTML = sum2;
};
</script>
</head>
<body onload="bijmekaar()">
<div id="containerstart"><BR><BR>
<FORM NAME="bestelopties" ACTION="bestelstap4.php" METHOD="POST">
<table border="1" width="650" cellspacing="5" cellpadding="0">Deurplaat <b>Koskifutura op voorraad</b><BR>
<tr><td>Aantal in voorraad</td><td>dikte*breedte*lengte</td><td>Stuksprijs</td><td>Bestel aantal</td></tr>
<tr><td><input type="hidden" name="voorraad" value="40">40</td><td> 15 * 1250 * 2500</td>
<td><input type="hidden" name="prijs" value="121.5">121,50</td><td><input type="text" name="aantal" onchange="bijmekaar();"></td></tr>
<tr><td><input type="hidden" name="voorraad" value="40">40</td><td> 15 * 1250 * 2500</td>
<td><input type="hidden" name="prijs" value="121.5">121,50</td><td><input type="text" name="aantal" onchange="bijmekaar();"></td></tr>
<tr><td><input type="hidden" name="voorraad" value="5">5</td><td> 24 * 1250 * 3000</td>
<td><input type="hidden" name="prijs" value="168.75">168,75</td><td><input type="text" name="aantal" onchange="bijmekaar();"></td></tr>
<tr><td><input type="hidden" name="voorraad" value="1">1</td><td> 24 * 1220 * 2750</td>
<td><input type="hidden" name="prijs" value="151">151,00</td><td><input type="text" name="aantal" onchange="bijmekaar();"></td></tr>
<tr><td colspan=2 align="center"><p><input type="submit" value="Voeg toe aan bestelling"></p></td><td>Subtotaal :</td><td><span id="sum"></span></td></tr>
</table>
</form>
Let op. Bij onvoldoende voorraad wordt uw bestelling automatisch aangepast!!
</div>
</div>
</body>
</html>
Even uitleggen: de functie tidy heb ik geleend en verbouwd van http://www.katipo.co.nz/clients/helpdesk/javascript/js-clean_and_tidies.html
Wat er mis gaat is het volgende. De regel die behoort te controleren of er niet meer besteld wordt dan er in voorraad is, veranderd soms ook lagere bedragen naar het totaal dat in voorraad is. :shocked:
Vul in de eerste box 5 in en je begrijpt, denk ik, wel wat ik bedoel. Als ik dat doe maakt hij er 40 van.
Alvast bedankt voor enige hulpvolle suggesties.