Vraag Javascritpt
19 maart 2014 - 16:57   
geplaatst door: Roel
Hallo,

Ik heb een bestelformulier waar het volgende javascript aanhangt:


function dm(amount)
{
 string = "" + amount;
 dec = string.length - string.indexOf('.');
 if (string.indexOf('.') == -1)
 return string + '.00';
 if (dec == 1)
 return string + '00';
 if (dec == 2)
 return string + '0';
 if (dec > 3)
 return string.substring(0,string.length-dec+3);
 return string;
}

function calculate()
{

 QtyA = 0;  QtyB = 1;  
 TotA = 0;  TotB = 0;  

 PrcA = 24.95; PrcB = 3.95;



 if (document.ofrm.qtyA.value > "")
    { QtyA = document.ofrm.qtyA.value };
 document.ofrm.qtyA.value = eval(QtyA);  

 if (document.ofrm.qtyB.value > "")
    { QtyB = document.ofrm.qtyB.value };
 document.ofrm.qtyB.value = eval(QtyB);  



 TotA = QtyA * PrcA;
 document.ofrm.totalA.value = dm(eval(TotA));

 TotB = QtyB * PrcB;
 document.ofrm.totalB.value = dm(eval(TotB));



  Totamt =
    eval(TotA) +
    eval(TotB) ;
   
   
 document.ofrm.GrandTotal.value = dm(eval(Totamt));
 
}


Nu wil ik wanneer iemand meer dan 1 produkt besteld (QtyA) dat de verzendkosten (QtyB) vervallen
hoe los ik dit op, zit al meer dan een half uur te stoeien met if statements en kom er niet uit

Alvast hartelijk dank voor het meedenken

Vraag Javascritpt
19 maart 2014 - 17:25    reactie #1
geplaatst door: Pieterr
Je hebt er een mooie puzzel van gemaakt zo.  :smile:

De prijs van één product is €24.95.  Twee producten kosten €49.90 etc.
De  verzendkosten voor één of meer producten zijn €3.95 totaal.

Snap ik dit zo goed?

"One experiment is worth a thousand expert opinions."
Vraag Javascritpt
19 maart 2014 - 17:31    reactie #2
geplaatst door: Roel
Het is dus zo dat wanneer je 1 produkt besteld dat dit 24.95 kost en 3,95 verzendkosten maakt totaal 29,90
en wanneer je dus 2 produkten besteld (dus 2 x 24,95) dan vervallen de verzendkosten en betaal je dus 49,90 in totaal

het gaat er dus over dat er een if script komt wanneer de QtyB  groter dan 1 is de verzendkosten op 0 gezet worden.

Nogmaals bedankt voor het meedenken en bovenstaand gedoe is verzonnen door iemand anders

Vraag Javascritpt
19 maart 2014 - 17:58    reactie #3
geplaatst door: Pieterr
Dus iets als: (ik ben geen Javascript expert... )

Totamt = eval( QtyA * PrcA ) ;

if ( eval( QtyA ) == 1 )
{
 Totamt = eval( Totamt + PrcB ) ;
}

(Bewerkt door Pieterr om 18:08, 19-03-2014)

"One experiment is worth a thousand expert opinions."
Vraag Javascritpt
19 maart 2014 - 18:37    reactie #4
geplaatst door: Roel
Hallo Pieterr,

Bedankt voor je moeite, helaas is dit niet de oplossing


gr. Roel

Vraag Javascritpt
19 maart 2014 - 18:39    reactie #5
geplaatst door: Pieterr
En waarom niet? Wat gaat er mis?
Plaats de hele (aangepaste) code nog eens.
"One experiment is worth a thousand expert opinions."
Vraag Javascritpt
19 maart 2014 - 19:44    reactie #6
geplaatst door: Roel
Hallo Pieterr,

Alvast heel superbedankt voor je oplossing, ik keek verkeerd en zag dat de verzendkosten nog steeds op 3.95 stonden maar uiteindelijk niet werden meegerekend in het totaal.

Hoe zet ik in het door jou opgeloste script ook nog de prijs van 3.95 op nul?

Nogmaals heel erg bedankt voor alles.