login  Naam:   Wachtwoord: 
Registreer je!
 Forum

excel formule naar javscript (Opgelost)

Offline bethesound - 09/09/2010 17:52
Avatar van bethesoundNieuw lid Goedendag allemaal,

Ik heb een formuliertje in excel. Nu wil ik dat graag op een webpagina hebben met javascript.

ik heb al het één en ander geprobeerd, maar het wil nog niet echt lukken. Kan iemand mij een beetje op weg helpen?

De formule in excel is: (((((C7*C4)/1000)*(9,81*C6))*C2)/C5)/C3*10

de velden C3 enzo komen overeen met de input velden:

bijv: var C9 = document.getElementById('C9')

ik probeerde al

C9.value = (((((C7*C4)/1000)*(9,81*C6))*C2)/C5)/C3*10;

maarjah...dat lukte natuurlijk niet...

Alvast bedankt voor de reacties!  

16 antwoorden

Gesponsorde links
Offline markla - 09/09/2010 18:23
Avatar van markla PHP interesse Waarom javascript?

en waar draait die pagina op? ASP? php?
Offline bethesound - 09/09/2010 18:28
Avatar van bethesound Nieuw lid Ik heb gekozen voor javascript omdat er dan geen pagina herladen hoeft te worden en omdat het nog onduidelijk is op welke server het komt te draaien.
Offline markla - 09/09/2010 18:40
Avatar van markla PHP interesse Oke, ik ben geen java man dus op dat gebied heb je weinig aan mij.
maar ik denk dat je toch even met het FORM moet komen waarin je de data gaat laten in voeren.
Offline WouterJ - 09/09/2010 18:58
Avatar van WouterJ HTML gevorderde Kan je inderdaad iets meer code geven, of liever een voorbeeldje  
Offline Koen - 09/09/2010 19:00
Avatar van Koen PHP expert Jouw probleem is dat de waarde van een veld in een formulier door Javascript steeds wordt geïnterpreteerd als een string. Als je dan jouw formule bekijkt dan zie je dat je een string probeert te vermenigvuldigen met een getal, wat natuurlijk niet de bedoeling is. Gooi er parseFloat() overheen en je problemen moeten van de baan zijn.

Succes 

PS: vergeet niet dat je .value moet hebben, want ik zie je "bijv: var C9 = document.getElementById('C9')" gebruiken, maar in de formule roep je .value niet aan..
Bedankt door: bethesound
Offline bethesound - 09/09/2010 19:56 (laatste wijziging 09/09/2010 20:06)
Avatar van bethesound Nieuw lid @ keon : idd, ik was de .value vergeten 

alleen doet 'ie nog steeds heel weinig.


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Calculation elongation</title>
  6. </head>
  7. <body>
  8.  
  9. <style type="text/css">
  10.  
  11. body {padding:0; background-color: silver;}
  12.  
  13. #table_wrapper { background-color: #3F74AA; padding: 25px; width:100%;}
  14.  
  15. .left { text-align: right; font-weight: bold; }
  16.  
  17. .right { padding-right: 40px; }
  18.  
  19. .right input { width: 150px;}
  20.  
  21. </style>
  22.  
  23. <script type="text/javascript">
  24.  
  25. function calculate(){
  26.  
  27. var C2 = parseFloat(document.getElementById('C2').value);
  28. var C3 = parseFloat(document.getElementById('C3').value);
  29. var C4 = parseFloat(document.getElementById('C4').value);
  30. var C5 = parseFloat(document.getElementById('C5').value);
  31. var C6 = parseFloat(document.getElementById('C6').value);
  32. var C7 = parseFloat(document.getElementById('C7').value);
  33. var C9 = parseFloat(document.getElementById('C9').value);
  34.  
  35. C9.value = (((((C7*C4)/1000)*(9,81*C6))*C2)/C5)/C3*10;
  36.  
  37. }
  38.  
  39.  
  40. </script>
  41.  
  42.  
  43.  
  44. <center>
  45. <h1>Calculation elongation</h1>
  46. <div id="table_wrapper">
  47. <table>
  48. <tr>
  49. <td class="left">value1</td>
  50. <td class="right"><input onkeyup="calculate();" type="text" id="C2" /></td>
  51. </tr>
  52. <tr>
  53. <td class="left">value2</td>
  54. <td class="right"><input onkeyup="calculate();" type="text" id="C3" /></td>
  55. </tr>
  56. <tr>
  57. <td class="left">value3</td>
  58. <td class="right"><input onkeyup="calculate();" type="text" id="C4" /></td>
  59. </tr>
  60. <tr>
  61. <td class="left">value4</td>
  62. <td class="right"><input onkeyup="calculate();" type="text" id="C5" /></td>
  63. </tr>
  64. <tr>
  65. <td class="left">value5</td>
  66. <td class="right"><input onkeyup="calculate();" type="text" id="C6" /></td>
  67. </tr>
  68. <tr>
  69. <td class="left">value6</td>
  70. <td class="right"><input onkeyup="calculate();" type="text" id="C7" /></td>
  71. </tr>
  72. <tr>
  73. <td class="left">&nbsp;</td>
  74. <td class="right"></td>
  75. </tr>
  76. <tr>
  77. <td class="left">antwoord:</td>
  78. <td class="right"><input type="text" id="C9" /></td>
  79. </tr>
  80. </table>
  81. </div>
  82. </center>
  83. </body>
  84. </html>
Offline WouterJ - 09/09/2010 20:08
Avatar van WouterJ HTML gevorderde Je moet de functie calculate() nog aanroepen!

Als je bijv. een form maakt zet je bij de button:
  1. onClick="calculate()"


Dus dat moet je nog toevoegen.
Offline bethesound - 09/09/2010 20:18
Avatar van bethesound Nieuw lid Dat doe ik toch met onkeyup="calculate();"???
Offline WouterJ - 09/09/2010 20:37
Avatar van WouterJ HTML gevorderde
bethesound schreef:
Dat doe ik toch met onkeyup="calculate();"???

Sorry overheen gekeken.
Moet dat trouwens niet met hoofdletters?
Offline lolll - 09/09/2010 20:39
Avatar van lolll Lid
Waldio schreef:
Moet dat trouwens niet met hoofdletters?


Neen, dat is niet hoofdlettergevoelig.
Offline valles10 - 09/09/2010 21:16
Avatar van valles10 HTML interesse uhum...

  1. var C9 = parseFloat(document.getElementById('C9').value);
  2. C9.value = (((((C7*C4)/1000)*(9,81*C6))*C2)/C5)/C3*10;


Wat jij nu eigenlijk doet is:
  1. parseFloat(document.getElementById('C9').value).value = (((((C7*C4)/1000)*(9,81*C6))*C2)/C5)/C3*10;
Offline bethesound - 09/09/2010 22:07 (laatste wijziging 09/09/2010 22:08)
Avatar van bethesound Nieuw lid @valles10: dat was niet zo slim he..? Maar ik zat er in de buurt...  

dit werkt in principe....ben alleen vergeten dat het resultaat in procenten moet zijn...iemand enig idee hoe ik dat converteer?

Zo is het nu:

  1. function calculate(){
  2.  
  3. var C2 = parseFloat(document.getElementById('C2').value);
  4. var C3 = parseFloat(document.getElementById('C3').value);
  5. var C4 = parseFloat(document.getElementById('C4').value);
  6. var C5 = parseFloat(document.getElementById('C5').value);
  7. var C6 = parseFloat(document.getElementById('C6').value);
  8. var C7 = parseFloat(document.getElementById('C7').value);
  9.  
  10. var answer = (((((C7*C4)/1000)*(9,81*C6))*C2)/C5)/C3*10;
  11.  
  12. document.getElementById('C9').value = answer;
  13.  
  14. }
Offline Koen - 09/09/2010 22:46
Avatar van Koen PHP expert
  1. document.getElementById('C9').value = answer + "%";


Lijkt me logisch. 
Offline bethesound - 09/09/2010 23:03
Avatar van bethesound Nieuw lid hehe...tja...ik denk dat het antwoord nog ergens in geconverteerd moet worden want ik krijg niet echt het zelfde antwoord als in excel...  
Offline Flex1986 - 10/09/2010 11:43
Avatar van Flex1986 Gouden medaille

Senior Member
  1. var answer = (((((C7*C4)/1000)*(9.81*C6))*C2)/C5)/C3*10;


Volgens mij moet 9,81 het volgende worden 9.81 anders krijg je een rare berekening ;)
Bedankt door: bethesound
Offline bethesound - 10/09/2010 15:17
Avatar van bethesound Nieuw lid wow dat is echt een scherpe opmerking. Dat loste mijn probleem op!!! Thanks.

Zo zie je maar...ik op internet zoeken naar "convert float naar percent' enzo... 

was het gewoon een comma'tje...

Toppie hij werkt nu helemaal. Iedereen bedankt!!!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.234s