22. februar 2001 - 08:51
Der er
15 kommentarer og 2 løsninger
Totaler til udregning!?
Hejsa! Kan man i javascript bruge allerede udregnede resultater til udregning af et tredje resultat??? Jeg har fx. 1: en total omsætning der regnes ud som ekstern+intern omsætning 2: et resultat der er den totale omsætning-diverse omkostninger 3: en udregning der viser hvor mange procent resultatet udgør af den totale omsætning. De to første fungerer fint, men jeg kan ikke få mit script til at udregne den sidste, men der bliver heller ikke meldt om fejl når jeg kører scriptet! Er der nogen der kan hjælpe?
Annonceindlæg fra Pax8
22. februar 2001 - 09:18
#1
prøv at vise koden til de første trin
22. februar 2001 - 09:27
#2
1: Total omsætning - function total1() { var tal1; var tal2; tal1 = parseInt(document.report.ekstern_real1.value); tal2 = parseInt(document.report.intern_real1.value); document.report.total_real1.value = tal1 + tal2; } 2: Resultat - function res1() { var tal17; var tal18; var tal19; var tal20; var tal21; var tal22; var tal23; var tal24; var tal25; tal17 = parseInt(document.report.ekstern_real1.value); tal18 = parseInt(document.report.intern_real1.value); tal19 = parseInt(document.report.royalty_real1.value); tal20 = parseInt(document.report.varekoebe_real1.value); tal21 = parseInt(document.report.varekoebi_real1.value); tal22 = parseInt(document.report.marketing_real1.value); tal23 = parseInt(document.report.andre_real1.value); tal24 = parseInt(document.report.personale_real1.value); tal25 = parseInt(document.report.afskrivninger_real1.value); document.report.resultat_real1.value = (tal17 + tal18) - tal19 - tal20 - tal21 - tal22 - tal23 - tal24 - tal25; } 3: Procentdel - ??????
22. februar 2001 - 09:41
#3
3: Procentdel - function pro() { var total; var resultat; total = parseInt(document.report.total_real1.value); resultat = parseInt(document.report.resultat_real1.value); document.report.procent_real1.value = (resultat/total) * 100; } Her antager jeg at du har et felt i din form (report) der hedder procent_real1.
22. februar 2001 - 10:11
#4
Det virker stadig ikke og der er stadig ingen fejl!
22. februar 2001 - 10:16
#5
Når du bruger en funktion til at beregne et resultat er det ofte nødvendigt at erklære en GLOBAL variabel til ta indeholde resultatet. En global variabel er en der er defineret udenfor funktionen. Variable defineret indeni en funktion er LOKALE og bliver glemt igen såsnart funktionen har gjort sit arbejde <script language=\'javascript\'> var total; // global variabel der kan bruges og ændres sålænge siden er loaded // giv den fx en værdi fra total1() funktionen function total1 ( ) { var tal1; // lokale variable der forsvinder igen efter brugen var tal2; tal1 = parseInt(document.report.ekstern_real1.value); tal2 = parseInt(document.report.intern_real1.value); document.report.total_real1.value = tal1 + tal2; total = tal1 + tal2; }; // i dine andre funktioner kan du så sige fx forskel = total - opmaalt; // som om variablen total også var defineret der. mvh JakobA
22. februar 2001 - 10:19
#6
jakoba: Øøøøøøhhhh.......gider du snakke dansk??? ;o) Jeg er nybegynder i javascript, så det virkede lidt som volapyk det du skrev! Kan du ikke prøve at skrive det som det evt skal skrives?
22. februar 2001 - 11:05
#7
Så er det nok bedre jeg blander mig udenom. Med to \"lærere\" der snakker i munden på hinanden bliver du blot mere forvirret.
22. februar 2001 - 11:07
#8
jakoba: Jamen det første virkede ikke, så jeg er åben for forslag fra anden side!
22. februar 2001 - 11:29
#9
webbe => jeg har testet det første og det virker fint, men jakoba har ret, globale variable ville være noget nemmere i den her sammenhæng. Globale variable erklæres mellem <script> og </script> eksempel: <script language=\"JavaScript\"> var myGlobal; </script> Variablen myGlobal kan nu bruges overalt på siden, også af funktioner. Lokale variable erklæres i en funktion eksempel: <script language=\"JavaScript\"> function myFunc() { var myLocal; } </script> Variablen myLocal kan så bruges indefor funktionen, men forsvinder så snart funktionen returnerer. I dit specifikke tilfælde vil det være smart med i hvertfald tre globale variable: total, resultat og procent Scriptet vil så se således ud: <script language=\"JavaScript\"> var total; var resultat; var procent; function total1() { var tal1; var tal2; tal1 = parseInt(document.report.ekstern_real1.value); tal2 = parseInt(document.report.intern_real1.value); total = tal1 + tal2; document.report.total_real1.value = total; } function res1() { var tal17; var tal18; var tal19; var tal20; var tal21; var tal22; var tal23; var tal24; var tal25; tal17 = parseInt(document.report.ekstern_real1.value); tal18 = parseInt(document.report.intern_real1.value); tal19 = parseInt(document.report.royalty_real1.value); tal20 = parseInt(document.report.varekoebe_real1.value); tal21 = parseInt(document.report.varekoebi_real1.value); tal22 = parseInt(document.report.marketing_real1.value); tal23 = parseInt(document.report.andre_real1.value); tal24 = parseInt(document.report.personale_real1.value); tal25 = parseInt(document.report.afskrivninger_real1.value); resultat = (tal17 + tal18) - tal19 - tal20 - tal21 - tal22 - tal23 - tal24 - tal25; document.report.resultat_real1.value = resultat; } function pro() { procent = (resultat/total) * 100; document.report.procent_real1.value = procent; } </script>
22. februar 2001 - 11:32
#10
Det ville nok være smart at inkluder kald til total1 og res1 fra pro function pro() { total1(); res1(); procent = (resultat/total) * 100; document.report.procent_real1.value = procent; }
22. februar 2001 - 13:54
#11
Hmmmm - nu har jeg prøvet det hele! Det virker okay på totalen og resultatet, men det vil bare ikke virke på procentudregningen!
22. februar 2001 - 16:17
#12
check det felt du prøver at skrive værdien i procent ned i har feltet en name=\"procent_real1\" parameter? skrevet med bare små bogstaver? med et understeg-tegn imellem procent ot real1? sidste bogstav i navnet et ettal og ikke et l? næstsidste bogstav et l og ikke et ettal? feltet er defineret imellem <FORM ... > og </FORM> i den form der har en name=\"report\" parameter?
23. februar 2001 - 10:13
#13
Sådan ser min form ud: <form method=\"POST\" action=\"maanedsrapport.asp?action=save\" name=\"report\"> Sådan ser linien hvor procent skal skrives ud: <td valign=\"middle\" width=\"25\" align=\"center\"><input type=\"TEXT\" name=\"procent41\" size=\"3\" value=\"0\" disabled onKeyUp=\"proc25();\"></td>
23. februar 2001 - 10:59
#14
Nu virker det - her er min løsning: function proc25() { var tal101; var tal102; var tal103; var tal104; var tal105; var tal106; var tal107; var tal108; var tal109; tal101 = parseInt(document.report.ekstern_real1.value); tal102 = parseInt(document.report.intern_real1.value); tal103 = parseInt(document.report.royalty_real1.value); tal104 = parseInt(document.report.varekoebe_real1.value); tal105 = parseInt(document.report.varekoebi_real1.value); tal106 = parseInt(document.report.marketing_real1.value); tal107 = parseInt(document.report.andre_real1.value); tal108 = parseInt(document.report.personale_real1.value); tal109 = parseInt(document.report.afskrivninger_real1.value); total = tal101 + tal102; resultat = total - tal103 - tal104 - tal105 - tal106 - tal107 - tal108 - tal109; procent = (resultat / total) * 100; document.report.procent41.value = procent; }
23. februar 2001 - 11:00
#15
Hvis I begge opretter et svar deler jeg pointene lige imellem jer!
23. februar 2001 - 13:14
#16
:-)
23. februar 2001 - 16:18
#17
det var da vist mest el_gnu\'s svar; men 10 til mig er fint
Vi tilbyder markedets bedste kurser inden for webudvikling