login  Naam:   Wachtwoord: 
Registreer je!
 Forum

OPGELOST: Optellen Javascript

Offline barry - 22/06/2005 12:28 (laatste wijziging 22/06/2005 13:30)
Avatar van barryPHP interesse Ik krijg een hoop dingen voor elkaar, maar moet nu het volgende doen...

Ik moet verschillende velden in een formulier, met daarin een bedrag (bijvoorbeeld '22.12').

Ik moet de velden bij elkaar op kunnen tellen in een veld (totaalveld).

ik heb hiervoor het volgende script:

  1. <script>
  2. function tellen() {
  3. var count = 0
  4.  
  5. var a = fct.veld_1.value;
  6. var b = count;
  7. var count = a+b;
  8.  
  9. var a = fct.veld_2.value;
  10. var b = count;
  11. var count = a+b;
  12.  
  13.  
  14. fct.totaal.value = count;
  15. }
  16. </script>
  17.  
  18. <form name="fct" method="post" action="">
  19.  
  20. Veld1: <input type="text" name="veld_1" value="0" onFocus="tellen();"><br>
  21. Veld2: <input type="text" name="veld_2" value="0" onFocus="tellen();"><br><br>
  22. Totaal: <input type="text" name="totaal" value="0" onFocus="tellen();">
  23.  
  24. </form>


Wat gebeurd er nu?

Als ik in veld_1 het bedrag 22.12 en in veld_2 het bedrag 11.55 zet, komt er in het veld totaal dit te staan:

11.5522.120  

Hij voegt ze dus samen in plaats van dat ie ze optelt...

Hoe kan ik er nou voor zorgen dat ie wel optelt? :S

Aan die msdn van microsoft en google heb ik ook nix 

Tis misschien een kleinigheidje, maar ik kom er niet uit 

3 antwoorden

Gesponsorde links
Offline Legolas - 22/06/2005 12:30
Avatar van Legolas Onbekend dis grappig, srry hoor...
maar gebruik parseInt(), anders ziet hij ze voor strings aan, de inputs;-)
Offline barry - 22/06/2005 12:38
Avatar van barry PHP interesse Ja die had ik geprobeerd...

Heb bovenstaande script werkt nu met eval():


Maar nu wil het volgende script niet 

Hij geeft nu in het totaalveld "NaN" aan...

  1. <script>
  2. function makeTotal() {
  3.  
  4. var addins = [fct.sbttl_0.value, fct.sbttl_1.value, fct.sbttl_2.value, fct.sbttl_3.value, fct.sbttl_4.value, fct.sbttl_5.value]
  5. var count = eval(0);
  6. var a = eval(fct.sbttl_0.value);
  7. var b = eval(count);
  8. var count = eval(a+b);
  9.  
  10. var a = eval(fct.sbttl_1.value);
  11. var b = eval(count);
  12. var count = eval(a+b);
  13.  
  14. var a = eval(fct.sbttl_2.value);
  15. var b = eval(count);
  16. var count = eval(a+b);
  17.  
  18. var a = eval(fct.sbttl_3.value);
  19. var b = eval(count);
  20. var count = eval(a+b);
  21.  
  22. var a = eval(fct.sbttl_4.value);
  23. var b = eval(count);
  24. var count = eval(a+b);
  25.  
  26. var a = eval(fct.sbttl_5.value);
  27. var b = eval(count);
  28. var count = eval(a+b);
  29.  
  30.  
  31. document.getElementById('koetjeboe').innerHTML = 'addins.length='+addins.length+'<br>alles opgeteld='+count+'<br>'+document.getElementById('koetjeboe').innerHTML;
  32. fct.subtot.value = count;
  33. }
  34. </script>


Dit bovenstaande script is eigenlijk waar het om gaat... maar er zit php doorheen :S:S

Dit is het volledige script, maar dies erg ehmm... onduidelijk misschien:
  1. <?
  2. #factuur init..
  3. $ownInf = getOwnInfo();
  4. $rayonNr = $ownInf['rayonnr'];
  5. $factuurnr = $rayonNr;
  6. $factuurnr .= factuurMaand(date("n"));
  7. $factuurnr .= factuurKwartaal(date("n"));
  8. $factuurnr .= factuurKwartaal(date("n"));
  9. $factuurnr .= date("Y");
  10. $factuurnr .= date("g");
  11. $fctDate = mktime();
  12.  
  13.  
  14. $addins = 5;
  15. ?>
  16.  
  17. <script>
  18. function calculateTotal(price, price2, num, addin) {
  19. prz = price2 * num;
  20. pri = prz / 100;
  21. var a = pri;
  22. var b = price * num;
  23. prij = a+b;
  24. prijs = prij * num;
  25. addin.value = prij;
  26. }
  27.  
  28. function makeTotal() {
  29.  
  30. var addins = [<?
  31. for ($a = 0; $a <= $addins; $a++) {
  32. $nms .= 'fct.sbttl_'.$a.'.value, ';
  33. }
  34. echo substr($nms, 0, -2);
  35. ?>]
  36. var count = eval(0);
  37. <?
  38. for ($a = 0; $a <= $addins; $a++) {
  39. //$counter .= 'var count = parseInt(count) + parseInt(fct.sbttl_'.$a.'.value);'."\n";
  40. $counter .= "var a = eval(fct.sbttl_".$a.".value);\n";
  41. $counter .= "var b = eval(count);\n";
  42. $counter .= 'var count = eval(a+b);'."\n\n";
  43. }
  44. echo $counter;
  45. ?>
  46.  
  47. document.getElementById('koetjeboe').innerHTML = 'addins.length='+addins.length+'<br>alles opgeteld='+count+'<br>'+document.getElementById('koetjeboe').innerHTML;
  48. fct.subtot.value = count;
  49. }
  50. </script>
  51. <table width="100%" border="0" cellspacing="0" cellpadding="4">
  52. <tr>
  53. <td>
  54. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  55. <tr>
  56. <td width="128"><img src="img/topLeftLogo.png" width="128" height="90"><br>
  57. </td>
  58. <td>&nbsp;</td>
  59. </tr>
  60. </table>
  61. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  62. <tr>
  63. <td width="80" style="border: 1px #FF6600 solid;"><br>
  64. <br>
  65. <br>
  66. <br>
  67. <br>
  68. <br>
  69. <br>
  70. <br>
  71. <img src="img/factuur.png" width="69" height="477"></td>
  72. <td width="2" style="border: 1px #FF6600 solid;">&nbsp;</td>
  73. <td style="padding-left: 32px; padding-right: 32px; vertical-align:top;"> <br>
  74. <br>
  75. <br>
  76. <div style="float: right; width: 256px;"> <b><font color="#FF6600">Facctuuradres:</font></b> ...<br>
  77. <b><font color="#FF6600">Mobiel:</font></b> 06-...<br>
  78. <b><font color="#FF6600">Kantoor:</font></b> ...<br>
  79. </div>
  80. <div style="float: left; width: 256px;"> <b><font color="#FF6600">Adresgegevens eigen bedrijf:</font></b><br>
  81. <?=$ownInf['naam'];?>
  82. <br>
  83. <?=$ownInf['adres'];?>
  84. <br>
  85. <?=$ownInf['plaats'];?>
  86. <br>
  87. <?=$ownInf['pccijfers'];?>
  88. <?=$ownInf['pcnummers'];?>
  89. <br>
  90. <?=$ownInf['telnr'];?>
  91. </div>
  92. <br>
  93. <br>
  94. <br>
  95. <br>
  96. <br>
  97. <br>
  98. <br>
  99. <br>
  100. <div style="float: left; width: 384px;"> <b><font color="#FF6600"><font size="5">Factuurnummer:</font></font></b>:
  101. <?=$factuurnr;?>
  102. <br>
  103. <b><font color="#FF6600"><font size="5">Factuurdatum:</font></font></b>:
  104. <?=date("d-m-Y", $fctDate);?>
  105. </div>
  106. <br>
  107. <br>
  108. <br>
  109. <br>
  110. <br>
  111. <br>
  112. <br>
  113. <br>
  114. <br>
  115. <br>
  116. <form name="fct" action="" method="post">
  117. <table cellpadding="4" cellspacing="0" border="0" width="100%" align="left">
  118. <tr style="color: #FF6600;">
  119. <td style="border-left: 2px #00000 solid; border-top: 2px #00000 solid; border-bottom: 2px #00000 solid;">Datum</td>
  120. <td style="border-top: 2px #00000 solid; border-bottom: 2px #00000 solid;">Omschrijving</td>
  121. <td style="border-top: 2px #00000 solid; border-bottom: 2px #00000 solid;">Prijs per eenh.</td>
  122. <td style="border-top: 2px #00000 solid; border-bottom: 2px #00000 solid;">Aantal</td>
  123. <td style="border-right: 2px #00000 solid; border-top: 2px #00000 solid; border-bottom: 2px #00000 solid;">Totaal</td>
  124. </tr>
  125. <?
  126. $a = 0;
  127. for ($a = 0; $a <= $addins; $a++) {
  128. ?>
  129. <!-- Start Factuur Loop -->
  130. <tr>
  131. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid;">
  132.  
  133. <input type="text" size="4" maxlength="2" name="dtm_d_<?=$a;?>" value="<?=date("d");?>">-
  134. <input type="text" size="4" maxlength="2" name="dtm_m_<?=$a;?>" value="<?=date("n");?>">-
  135. <input type="text" size="8" maxlength="4" name="dtm_y_<?=$a;?>" value="<?=date("Y");?>">
  136.  
  137. </td>
  138. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid;">
  139.  
  140. <input type="text" name="omschr_<?=$a;?>" value="" style="width: 100%;">
  141.  
  142. </td>
  143. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid;">
  144.  
  145. &euro; <input type="text" size="8" maxlength="20" name="ppe1_<?=$a;?>" value="0" onChange="calculateTotal(this.value, fct.ppe2_<?=$a;?>.value, fct.aantal_<?=$a;?>.value, fct.sbttl_<?=$a;?>);">
  146. , <input type="text" size="4" maxlength="2" name="ppe2_<?=$a;?>" value="0" onChange="calculateTotal(fct.ppe1_<?=$a;?>.value, this.value, fct.aantal_<?=$a;?>.value, fct.sbttl_<?=$a;?>);">
  147.  
  148. </td>
  149. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid; border-right: 1px #00000 solid;">
  150.  
  151. &euro; <input type="text" size="4" maxlength="2" name="aantal_<?=$a;?>" value="1" onChange="calculateTotal(fct.ppe1_<?=$a;?>.value, fct.ppe2_<?=$a;?>.value, this.value, fct.sbttl_<?=$a;?>);">
  152.  
  153. </td>
  154. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid; border-right: 1px #00000 solid;">
  155.  
  156. &euro; <input type="text" size="23" maxlength="20" name="sbttl_<?=$a;?>" onFocus="calculateTotal(fct.ppe1_<?=$a;?>.value, fct.ppe2_<?=$a;?>.value, fct.aantal_<?=$a;?>.value, this.value); makeTotal();">
  157.  
  158. </td>
  159. </tr>
  160. <!-- End Factuur Loop -->
  161. <?
  162. }
  163. ?>
  164. <tr>
  165. <td>&nbsp;</td>
  166. <td>&nbsp;</td>
  167. <td style="color: #FF6600; border-left: 1px #00000 solid; border-bottom: 1px #00000 solid;">Sub Totaal</td>
  168. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid; border-right: 1px #00000 solid;">&euro;
  169. <input type="text" readonly name="subtot" value="0.00">
  170.  
  171. </td>
  172. </tr>
  173. <tr>
  174. <td>&nbsp;</td>
  175. <td>&nbsp;</td>
  176. <td style="color: #FF6600; border-left: 1px #00000 solid; border-bottom: 1px #00000 solid;">BTW 19%</td>
  177. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid; border-right: 1px #00000 solid;">&euro;
  178. <input type="text" readonly name="btw" value="0.00">
  179.  
  180. </td>
  181. </tr>
  182. <tr>
  183. <td>&nbsp;</td>
  184. <td>&nbsp;</td>
  185. <td style="color: #FF6600; border-left: 1px #00000 solid; border-bottom: 1px #00000 solid;">Totaal</td>
  186. <td style="border-left: 1px #00000 solid; border-bottom: 1px #00000 solid; border-right: 1px #00000 solid;">&euro; </td>
  187. <input type="text" readonly name="alltotl" value="0.00">
  188.  
  189. </td>
  190. </tr>
  191. </table>
  192. </form>
  193. </td>
  194. </tr>
  195. </table>
  196. </td>
  197. </tr>
  198. </table>
  199. <div id="koetjeboe" style="border: 1px #000000 solid;">
  200. hier komt de info...
  201. </div>
Offline barry - 22/06/2005 13:30
Avatar van barry PHP interesse ik heb het opgelost...

De waardes die nog leeg zijn van de 6 velden in dit script, moeten niet leeg zijn... anders is de waarde van het veld die opgehaald wordt met eval(); niet gedefinieerd ('undefined') en het woord 'undefined' is geen cijfer ;) dus komt er in het resultaat 'NaN' te staan...

De waardes in de velden moesten allemaal even 0 worden.

:) toch bedankt voor de hulp 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s