Avatar billede chris0905 Nybegynder
29. januar 2011 - 21:00 Der er 10 kommentarer og
2 løsninger

Pris regner

Hej Eksperter!

Jeg vil gerne lave en "pris-sammen-regner", hvor man krydser nogle felter af, med hver sin pris, og så kan siden selv regne den endelige pris ud...

Er der nogen der ved hvordan det kan/skal gøres???

Mvh.

Christoffer
Avatar billede claes57 Ekspert
29. januar 2011 - 21:54 #1
der er et eksempel på det her, hvor det er et par drop-bokse, der vælger antal varer og så lægges porto til (fast pris)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!--  Created with the CoffeeCup HTML Editor 2008  -->
<!--          http://www.coffeecup.com/          -->
<!--        Brewed on 29-01-2011 21:44:45        -->
<head>
  <title></title>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<style TYPE="text/css">
body {
    margin: 0px;
    padding: 0px;
    background-color: #B4B8E2;
      color : #373f47;
    font-weight: normal;
    font-size : 10pt;
    font-family : Verdana, sans-serif;
}
.stdtxt {
    font-weight: normal;
    font-size : 10pt;
    font-family : Verdana, sans-serif;
}
.lilletxt {
    color : #1c1c1c;
    font-weight: normal;
    font-size : 8pt;
    font-family : Verdana, sans-serif;
}

.indfelt {
    BACKGROUND-COLOR: #DADADA;
    COLOR: #000000;
    FONT-FAMILY: Verdana, sans-serif;
    FONT-SIZE: 8pt;
    BORDER: #C0C0C0 1px solid;
}
</style>

<SCRIPT language=JavaScript>
  var browserID = "n";
  if (navigator.appName.indexOf("Microsoft")>=0){browserID="i";}
  var prisIalt = 0;
  function reCalc(){
  if (browserID=="n"){
    ialt = document.getElementById("ialt");
    porto= document.getElementById("porto");
    frm = document.getElementById("frm");}
  prisIalt  = (frm.ant01.value * 100) + (frm.ant02.value * 100) + 35;
  if (prisIalt==35){
    prisIalt=0;
    porto.innerHTML = "&nbsp;"}
  else {
    porto.innerHTML = "35,00"}
  ialt.innerHTML = "<b>" + prisIalt.toFixed(2).replace('.',',') + "</b>";}
</script>
</head>
<body>
<FORM id=frm action=kontakt.asp?send=nu method=get>
<TABLE cellSpacing=0 cellPadding=0 border=0>
  <TR valign="top">
    <TD class="stdtxt">K&#248;b&nbsp;</TD>
    <TD>
    <table width="100%" cellspacing="2" cellpadding="2" border="0">
    <tr>
    <td class="lilletxt"><b>Antal</b></td>
    <td class="lilletxt"><b>Vare</b></td>
    <td class="lilletxt"><b>Pris</b></td>
    <td class="lilletxt"><b>I alt</b></td>
    </tr>
    <tr>
    <td class="lilletxt">
    <select name="ant01" id="ant01" onchange="if (browserID=='n'){nr1 = document.getElementById('nr1');}; nr1.innerHTML = parseInt(this.value)*100; nr1.innerHTML = nr1.innerHTML + ',00'; reCalc();">
    <option value=0>0</option><option value=1>1</option><option value=2>2</option>
    <option value=3>3</option><option value=10>10</option></select>
    </td>
    <td class="lilletxt">CD med freeware programmer</td>
    <td class="lilletxt">100,00</td>
    <td class="lilletxt" id="nr1" align="right">&nbsp;</td>
    </tr>
    <tr>
    <td class="lilletxt">
    <select name="ant02" id="ant02" onchange="if (browserID=='n'){nr2 = document.getElementById('nr2');}; nr2.innerHTML = parseInt(this.value)*100; nr2.innerHTML = nr2.innerHTML + ',00'; reCalc();">
    <option value=0>0</option><option value=1>1</option><option value=2>2</option>
    <option value=3>3</option><option value=10>10</option></select>
    </td>
    <td class="lilletxt">CD med shareware programmer</td>
    <td class="lilletxt">100,00</td>
    <td class="lilletxt" id="nr2" align="right">&nbsp;</td>
    </tr>
    <tr>
    <td class="lilletxt">&nbsp;</td>
    <td class="lilletxt">Porto</td>
    <td class="lilletxt">&nbsp;</td>
    <td class="lilletxt" id="porto" align="right">&nbsp;</td>
    </tr>
    <tr>
    <td class="lilletxt" align="right" colspan="3"><b>bestilling i alt</b></td>
    <td id="ialt" class="lilletxt" align="right">&nbsp;</td>
    </tr>
    </table>
    </TD>
  </TR>
  <tr>
    <td colspan="2" class="stdtxt"><br>Afsender:</td>
  </tr> 
  <TR>
    <TD class="stdtxt"><INPUT type=hidden name=buttonPress>Navn&nbsp;</TD>
    <TD><INPUT size=25 name=navn class="indfelt" value=""></TD>
  </TR>
  <TR>
    <TD class="stdtxt">E-mail&nbsp;</TD>
    <TD><INPUT size=25 name=epost class="indfelt" value=""></TD>
  </TR>
  <TR>
    <TD class="stdtxt">Telefon&nbsp;</TD>
    <TD><INPUT size=25 name=tlf class="indfelt" value=""></TD>
  </TR>
  <TR>
    <TD valign="top" class="stdtxt">Adresse&nbsp;</TD>
    <TD colspan="2"><textarea name="adr" rows=3 wrap=VIRTUAL cols=27 class="indfelt"></textarea></TD>
  </TR>
  <TR>
    <TD class="lilletxt" colspan="2"><hr></TD>
  </TR>
  <tr>
      <td><INPUT type=reset value=" Ryd " name="clear"></td>
    <TD align="right"><INPUT type=submit name="send" value=" Send "></TD>
  </TR>
</TABLE>
</FORM>
</body>
</html>
Avatar billede olsensweb.dk Ekspert
29. januar 2011 - 23:16 #2
her er et bidrag mere, sådan kan det også gøres

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title></title>
    <script type="text/javascript">   
    function CalcPrice(form, boxname){
        var lng = document[form][boxname].length;       
        var sum = 0;
        for(var i=0;i<lng ;i++){   
            if(document[form][boxname][i].checked){
                sum += parseInt(document[form]["tf[]"][i].value);               
            }       
        }
        document[form].t4.value = sum;
    }
    </script>
</head>   
<body>
<form name="form2" method="post" action="#">
<!--
http://www.webmasterworld.com/forum91/1770.htm
jf ovenstående må jeg ikke bruge onchange, selvom det er det logiske, og ifølge std, men det forstår IE IKKE, men skal anvende onClick
IE udfører først eventen når checkboxen forlades :(
-->
  <p>
    <input type="checkbox" name="cb[]" id="cb1" onchange="CalcPrice('form2', 'cb[]')" >
    <input name="tf[]" type="text" id="t1" value="100">
    <br>
    <input type="checkbox" name="cb[]" id="cb2" onchange="CalcPrice('form2', 'cb[]')">
    <input name="tf[]" type="text" id="t2" value="250">
    <br>
    <input type="checkbox" name="cb[]" id="cb3" onchange="CalcPrice('form2', 'cb[]')">
    <input name="tf[]" type="text" id="t3" value="25">
  </p>
  <p>
    ialt
    <input type="text" name="t4" id="t4">
  </p>
</form>
</body>
</html>


demo http://olsensweb.dk/test/experten/spm/930248/

nb: husk lige at lukke dine gamle spørgsmål
http://www.eksperten.dk/list/aabnespoergsmaal/chris0905
Avatar billede chris0905 Nybegynder
30. januar 2011 - 21:22 #3
Jeg kan rigtig godt lide begge jeres forslag... jeg ville gerne kombinere dem... så der ikke var tekstbokse, men at det var felter man skulle afkrydse...
Avatar billede olsensweb.dk Ekspert
30. januar 2011 - 22:09 #4
hvad mener du med felter ??
en tekskboks er et text felt,
en check box er et afkrydsnings felt
lav en simpel html side der viser hvordan du vil have det
Avatar billede claes57 Ekspert
31. januar 2011 - 08:46 #5
tag ronols kode, og ret linje i javascript til
                sum += parseInt(document[form][boxname][i].value);             

og læg en value direkte i checkbok, som
    <input type="checkbox" name="cb[]" id="cb1" onClick="CalcPrice('form2', 'cb[]')" value="100">valg 1
Avatar billede chris0905 Nybegynder
31. januar 2011 - 19:39 #6
her er det, som jeg kunne forestille mig at det skulle være:
http://computerware.dk/index/index.php?cID=75
Avatar billede claes57 Ekspert
31. januar 2011 - 19:58 #7
tabelstykket i det kode skal så erstattes med
<script type="text/javascript">
    function CalcPrice(form, boxname){
        var lng = document[form][boxname].length;     
        var sum = 0;
        for(var i=0;i<lng ;i++){ 
            if(document[form][boxname][i].checked){
                sum += parseInt(document[form][boxname][i].value);             
            }     
        }
        t4.innerHTML = sum + " kr.";
    }
    </script>
<form name="form2" method="post" action="#">
<table>
<tr>
<td width=100px>Produkt</td>
<td width=75px>Pris</td>
<td></td>
</tr>
<tr>
<td>Produkt 1</td>

<td>50 kr.</td>
<td><input type="checkbox" name="cb[]" value="50" id="cb1" onClick="CalcPrice('form2', 'cb[]')"></td>
</tr>
<tr>
<td>Produkt 2</td>
<td>150 kr.</td>
<td><input type="checkbox" name="cb[]" value="150" id="cb2" onClick="CalcPrice('form2', 'cb[]')"></td>
</tr>
<tr>
<td>Produkt 3</td>
<td>100 kr.</td>
<td><input type="checkbox" name="cb[]" value="100" id="cb3" onClick="CalcPrice('form2', 'cb[]')"></td>

</tr>
<tr>
<td>Produkt 4</td>
<td>250 kr.</td>
<td><input type="checkbox" name="cb[]" value="250" id="cb4" onClick="CalcPrice('form2', 'cb[]')"></td>
</tr>
<tr>
<td>Produkt 5</td>
<td>100 kr.</td>
<td><input type="checkbox" name="cb[]" value="100" id="cb5" onClick="CalcPrice('form2', 'cb[]')"></td>
</tr>
<tr>
<td>Produkt 6</td>

<td>125 kr.</td>
<td><input type="checkbox" name="cb[]" value="125" id="cb6" onClick="CalcPrice('form2', 'cb[]')"></td>
</tr>
<tr>
<td>Produkt 7</td>
<td>50 kr.</td>
<td><input type="checkbox" name="cb[]" value="50" id="cb7" onClick="CalcPrice('form2', 'cb[]')"></td>
</tr>
<tr>
<td>Total:</td>
<td id="t4">Pris</td>
</tr>

</table>
</form>
Avatar billede chris0905 Nybegynder
31. januar 2011 - 20:11 #8
TAK! smid et svar!
Avatar billede claes57 Ekspert
31. januar 2011 - 20:17 #9
det er ronols kode - så det må være hans point.
Avatar billede chris0905 Nybegynder
31. januar 2011 - 20:20 #10
Så smider i begge et svar! ;)
Avatar billede olsensweb.dk Ekspert
31. januar 2011 - 21:53 #11
@claes57 du var godt nok hurtig med #7 20 min

#7 lille rettelse til javascriptet:
t4.innerHTML = sum + " kr.";
rettes til
document.getElementById('t4').innerHTML = sum + " kr.";


#10 ja du får mit her
Avatar billede claes57 Ekspert
01. februar 2011 - 10:17 #12
og min ½-del...
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