Avatar billede sonic666 Novice
01. november 2004 - 15:14 Der er 4 kommentarer og
1 løsning

beregn subtotal og total på formular

Jeg skal bruge et script der kan regne på indtastninger fra en formular.

Vare1 pris    stk.___  pris2___
Vare2 pris    stk.___  pris2___
Vare3 pris    stk.___  pris2___

                        Total___


Vare og pris er bare normal tekst. Pris2 skal selv beregne prisen for x antel af en varetype.
Total skal selv bregner summen af alle pris2 felter
Det er faktisk det. Det eneste jeg måske skal nævne er at formularen skal kunne udvides med mange varetyper.

Håber nogle kan hjælpe  ;-)
Avatar billede roenving Novice
01. november 2004 - 16:01 #1
Sådan, måske ?-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Bestillingsformular</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">

</style>
<script language="javascript" type="text/javascript">
numFields = 3;
function beregn(fld){
    if(!fld.value.match(/^\d+\.?\d*$/)){
        alert('Ugyldigt antal angivet');
        fld.value = fld.defaultValue;
        return false;
    }
   
    var num = fld.name.substring(5);
    var p = document.getElementById("Pris"+num).value;
    var s = document.getElementById("Sum"+num);
    var ialt = document.getElementById("Ialt0");
    var ialt1 = document.getElementById("Ialt1");
    var pris = p;
    if(p.indexOf(",-")>-1){
        pris = p.substring(0,p.indexOf(",-"));
    }else{
        komma = p.indexOf(",")
        if(p.indexOf(",")>0){
            pris = (p.substring(0,komma)+"."+p.substring(komma+1));
        }
    }
    pris = +pris;
    var sum = pris*fld.value;
    s.value = formatNum(sum);
    sum = 0;
    for(i=1;numFields+1>i;i++){
        sum += +document.getElementById("Sum"+i).value
    }
    ialt.value = formatNum(sum);
    ialt1.value = formatNum(sum*1.25);
}

function formatNum(t){
    if((""+t).length>(""+t).indexOf(".")+3)t=(Math.round(t*100))/100;
    if((""+t).indexOf(".")==-1)t=t+".00";
    if((""+t).indexOf(".")+2==(""+t).length)t=t+"0";
    return t;
}
</script>
</head>

<body>
<br>
<form id="minForm" name="minForm" action="http://www.eksperten.dk" method="post" onsubmit="alert('Bestillingen bliver nu sendt !-)');return false">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
    <td>
        <input id="Antal1" name="Antal1" type="text" value="Indtast antal" onchange="beregn(this);" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20"></td>
    <td align="right">
        <input id="Pris1" name="Pris1" type="text" value="100" size="20" disabled style="text-align:right;">&nbsp;</td>
    <td>
        <input id="Sum1" name="Sum1" type="text" value="" disabled size="20" style="text-align:right;">&nbsp;</td>
</tr>
<tr>
    <td>
        <input id="Antal2" name="Antal2" type="text" value="Indtast antal" onchange="beregn(this);" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20"></td>
    <td align="right">
        <input id="Pris2" name="Pris2" type="text" value="25,-" size="20" disabled style="text-align:right;">&nbsp;</td>
    <td>
        <input id="Sum2" name="Sum2" type="text" value="" disabled size="20" style="text-align:right;">&nbsp;</td>
</tr>
<tr>
    <td>
        <input id="Antal3" name="Antal3" type="text" value="Indtast antal" onchange="beregn(this);" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20"></td>
    <td align="right">
        <input id="Pris3" name="Pris3" type="text" value="93,75" size="20" disabled style="text-align:right;">&nbsp;</td>
    <td>
        <input id="Sum3" name="Sum3" type="text" value="" disabled size="20" style="text-align:right;">&nbsp;</td>
</tr>
<tr>
    <td colspan="2" align="right">
        Pris ekskl. moms:&nbsp;</td>
    <td>
        <input id="ialt0" name="ialt0" type="text" value="" disabled size="20" style="text-align:right;">&nbsp;</td>
</tr>
<tr>
    <td colspan="2" align="right">
        Samlet pris inkl. moms:&nbsp;</td>
    <td>
        <input id="ialt1" name="ialt1" type="text" value="" disabled size="20" style="text-align:right;">&nbsp;</td>
</tr>
<tr>
    <td colspan="3">
        <input type="submit" value="Send bestilling" size="20"></td>
</tr>
</table>       
</form>
</body>

</html>
Avatar billede sonic666 Novice
03. december 2004 - 11:37 #2
hey tak for det :-)
Avatar billede roenving Novice
05. december 2004 - 07:39 #3
Velbekomme '-)
Avatar billede sonic666 Novice
26. januar 2005 - 11:37 #4
Er der mulighed for at hvis man indtaster et antal af en bestemt vare, bliver varenavn, antal pris og sum submittet? Hvis der ikke er indtastet et antal af en bestemt vare, bliver ingen ting submittet?

Med andre ord indeholder den mail der bliver afsendt kun data fra de bestilte varer.
Kan det lade sig gøre?
Avatar billede roenving Novice
11. juli 2005 - 14:26 #5
Tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester