waardes optellen

Status
Niet open voor verdere reacties.

mosGTT

Nieuwe gebruiker
Lid geworden
5 apr 2010
Berichten
4
Hallo,

ik heb een vraagje.

Ik heb in een ouder topic dezelfde vraag al gesteld maar er werd mij verzocht om even een nieuw topic te openen met deze vraag.

Ik heb een script van deze site gebruikt en het e.e.a aangepast.

Nu wil ik dus dat het script subtotaal van veld 1,2,3 en subtotaal van veld 4,5,6 bij elkaar op telt.

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 type="text/javascript">
<!--
 
function sumup(){
    var sum = 0;
    if(!isNaN(parseInt(document.getElementById("field1").value))){
        sum += parseInt(document.getElementById("field1").value);
    };
    if(!isNaN(parseInt(document.getElementById("field2").value))){
        sum += parseInt(document.getElementById("field2").value);
    };
    if(!isNaN(parseInt(document.getElementById("field3").value))){
        sum += parseInt(document.getElementById("field3").value);
    };
    document.getElementById("sum").innerHTML = sum;
};
 
function sumup1(){
    var sum1 = 0;
    if(!isNaN(parseInt(document.getElementById("field4").value))){
        sum1 += parseInt(document.getElementById("field4").value);
    };
    if(!isNaN(parseInt(document.getElementById("field5").value))){
        sum1 += parseInt(document.getElementById("field5").value);
    };
    if(!isNaN(parseInt(document.getElementById("field6").value))){
        sum1 += parseInt(document.getElementById("field6").value);
    };
    document.getElementById("sum1").innerHTML = sum1;
};
 
function sumuptot(){
    var sumtot = 0;
    if(!isNaN(parseInt(document.getElementById("sum").value))){
        sumtot += parseInt(document.getElementById("sum").value);
    };
    if(!isNaN(parseInt(document.getElementById("sum1").value))){
        sumtot += parseInt(document.getElementById("sum1").value);
    };
    document.getElementById("sumtot").innerHTML = sumtot;
};
 
//-->
</script>
</head>
 
<body onload="sumup(), sumup1(), sumuptot();">
Veld 1: <input id="field1" size="3" value="0" onkeyup="sumup();" /><br />
Veld 2: <input id="field2" size="3" value="0" onkeyup="sumup();" /><br />
Veld 3: <input id="field3" size="3" value="0" onkeyup="sumup();" /><br />
Subtotaal: <span id="sum"></span>
 
<br><br>
 
Veld 1: <input id="field4" size="3" value="0" onkeyup="sumup1();" /><br />
Veld 2: <input id="field5" size="3" value="0" onkeyup="sumup1();" /><br />
Veld 3: <input id="field6" size="3" value="0" onkeyup="sumup1(), sumuptot();" /><br />
Subtotaal: <span id="sum1"></span>
 
<br><br>
 
Totaal : <span id="sumtot"></span>
</body>
</html>

Ik dacht dat hiermee te kunnen bereiken, maar dit werkt niet.

Iemand een tip ?

Groetjes,

mosGTT
 
[js]function sumuptot(){
var sumtot = 0;
if(!isNaN(parseInt(document.getElementById("sum").value))){
sumtot += parseInt(document.getElementById("sum").value);
};
if(!isNaN(parseInt(document.getElementById("sum1").value))){
sumtot += parseInt(document.getElementById("sum1").value);
};
document.getElementById("sumtot").innerHTML = sumtot;[/js]
"sum" en "sum1" hebben geen "value", wel een "innerHTML. Vervang dus in deze functie [js]document.getElementById("sum").value[/js] door [js]document.getElementById("sum").innerHTML[/js]
en [js]document.getElementById("sum1").value[/js] door [js]document.getElementById("sum1").innerHTML[/js]
 
Mijn code :
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 type="text/javascript">
<!--

function sumup()
{
	var sum = 0;
	var sum1 = 0;
	
	sum 	+= parseInt(document.getElementById("field1").value);
	sum 	+= parseInt(document.getElementById("field2").value);
	sum 	+= parseInt(document.getElementById("field3").value);
	
	sum1 	+= parseInt(document.getElementById("field4").value);
	sum1	+= parseInt(document.getElementById("field5").value);
	sum1 	+= parseInt(document.getElementById("field6").value);
    
    document.getElementById("sum").innerHTML = sum;
	document.getElementById("sum1").innerHTML = sum1;

	document.getElementById("sumtot").innerHTML = sum+sum1;
} 
//-->
</script>
</head>
 
<body>
Veld 1: <input id="field1" size="3" value="0" onkeyup="sumup();" />
<br />
Veld 2: <input id="field2" size="3" value="0" onkeyup="sumup();" />
<br />
Veld 3: <input id="field3" size="3" value="0" onkeyup="sumup();" />
<br />
Subtotaal: <span id="sum">0</span>
 
<br>
<br>
 
Veld 4: <input id="field4" size="3" value="0" onkeyup="sumup();" />
<br />
Veld 5: <input id="field5" size="3" value="0" onkeyup="sumup();" />
<br />
Veld 6: <input id="field6" size="3" value="0" onkeyup="sumup();" />
<br />
Subtotaal: <span id="sum1">0</span>
 
<br>
<br>
 
Totaal : <span id="sumtot">0</span>
</body>
</html>

kben nog bezig met jouw code te verbeteren van this. I'll let u know.
 
de code alleen moet er nog 1 functie in maar kom daar nog niet zo snel uit.
dat is dat je de waarden 1x kan invullen.
als je deze waarden dan nog een keer wijzigt moet hij ze niet optellen. daar moet een check voor.

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 type="text/javascript">
<!--
 
function sumup(field, subtotal)
{
	var value = parseInt(field.value);
	
    if(!isNaN(value))
	{
        document.getElementById(subtotal).innerHTML = value + parseInt(document.getElementById(subtotal).innerHTML);
    }
	else
	{
        alert("Waarde in " + field.id + " is geen getal!");
	}

	sumuptot();
}
 
function sumuptot()
{
    var sub1 = parseInt(document.getElementById("sum").innerHTML);
	var sub2 = parseInt(document.getElementById("sum1").innerHTML);
    
    document.getElementById("sumtot").innerHTML = sub1 + sub2;
}
 
//-->
</script>
</head>
 
<body>
Veld 1: <input id="Veld 1" size="3" value="0" onkeyup="sumup(this, 'sum');" />
<br />
Veld 2: <input id="Veld 2" size="3" value="0" onkeyup="sumup(this, 'sum');" />
<br />
Veld 3: <input id="Veld 3" size="3" value="0" onkeyup="sumup(this, 'sum');" />
<br />
Subtotaal: <span id="sum">0</span>
 
<br>
<br>
 
Veld 4: <input id="Veld 4" size="3" value="0" onkeyup="sumup(this, 'sum1');" />
<br />
Veld 5: <input id="Veld 5" size="3" value="0" onkeyup="sumup(this, 'sum1');" />
<br />
Veld 6: <input id="Veld 6" size="3" value="0" onkeyup="sumup(this, 'sum1');" />
<br />
Subtotaal: <span id="sum1">0</span>
 
<br>
<br>
 
Totaal : <span id="sumtot">0</span>
</body>
</html>
 
Tijd mee bezig geweest maar hier is tie dan.
een andere methode ;)

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 type="text/javascript">
<!--
var arrayFields = new Array(0,0,0,0,0,0,0);

function fillArray(field, subtotal)
{
	var value = parseInt(field.value);	
	var location = field.id.substring(5);
	
	if(!isNaN(value))
	{
		switch(location)
		{
			case "1":
				arrayFields[location] = value;
				break;
			case "2":
				arrayFields[location] = value;
				break;
			case "3":
				arrayFields[location] = value;
				break;
			case "4":
				arrayFields[location] = value;
				break;
			case "5":
				arrayFields[location] = value;
				break;
			case "6":
				arrayFields[location] = value;
				break;
		}
    }
	else
	{
        alert("Waarde in " + field.id + " is geen getal!");
	}
	
	sumSubTotal();
}

function sumSubTotal()
{	
	var subtotal1;
	
	document.getElementById("sum").innerHTML = arrayFields[1] + arrayFields[2] + arrayFields[3];
	document.getElementById("sum1").innerHTML = arrayFields[4] + arrayFields[5] + arrayFields[6];
	sumuptot();
}
 
function sumuptot()
{
	var total = 0;
	
	for (var i = 0; i < arrayFields.length; i++)
	{
		total += arrayFields[i];
	}
	
	document.getElementById("sumtot").innerHTML = total;
	
	//of
    //var sub1 = parseInt(document.getElementById("sum").innerHTML);
	//var sub2 = parseInt(document.getElementById("sum1").innerHTML);
    //document.getElementById("sumtot").innerHTML = sub1 + sub2;
}
 
//-->
</script>
</head>
 
<body>
Veld 1: <input id="Veld 1" size="3" value="0" onkeyup="fillArray(this, 'sum');" />
<br />
Veld 2: <input id="Veld 2" size="3" value="0" onkeyup="fillArray(this, 'sum');" />
<br />
Veld 3: <input id="Veld 3" size="3" value="0" onkeyup="fillArray(this, 'sum');" />
<br />
Subtotaal: <span id="sum">0</span>
 
<br>
<br>
 
Veld 4: <input id="Veld 4" size="3" value="0" onkeyup="fillArray(this, 'sum1');" />
<br />
Veld 5: <input id="Veld 5" size="3" value="0" onkeyup="fillArray(this, 'sum1');" />
<br />
Veld 6: <input id="Veld 6" size="3" value="0" onkeyup="fillArray(this, 'sum1');" />
<br />
Subtotaal: <span id="sum1">0</span>
 
<br>
<br>
 
Totaal : <span id="sumtot">0</span>
</body>
</html>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan