Avatar billede roadi Nybegynder
20. september 2003 - 13:37 Der er 18 kommentarer og
1 løsning

Ligge tal sammen on the fly

Hej Eksperter!

Jeg er ved at lave et indberetnings system, hvor jeg gerne vil kunne ligge en række tal sammen, med det samme.

Eks.

Jeg har 3 felter:

Et hvor antal fra Valby står
Et hvor antal fra roskide står
og et hvor antal fra københavn står

Jeg vil gerne ha' et totalt felt der opdateres med det samme jeg har lagt 2 værdier ind.

Eks. valby = 10 og roskilde = 5 så vil jeg gerne ha' der står ialt = 15.

Kan dette lade sig gøre med noget javescript??

/Roadi
Avatar billede roadi Nybegynder
20. september 2003 - 13:41 #1
Det skal viker på samme måde som =sum(a1+a2) i EXCEL..
Avatar billede nielle Nybegynder
20. september 2003 - 14:08 #2
Ja, det kan lade sig gøre med JavaScript. Så du bør nok heller flytte spørgsmålet over i den gruppe.
Avatar billede KingMedia Novice
20. september 2003 - 14:29 #3
Hvis du alligevel har det i ASP, kan du gøre det på følgende måde..

De felter med antal for hver by , skal du smide i variabler (hvis ikke du allerede har gjort det )

Her kalder jeg dem for
Valby, roskilde og kbh

<%

AntalIalt = valby + roskilde + kbh

%>

/Mads
Avatar billede eagleeye Praktikant
20. september 2003 - 14:31 #4
Her et eks med java script:

<html>
<body>
<script>
function addformdata(theform) {
  var total = 0;
  var tal;
  tal = parseInt(theform.t1.value);
  if (isNaN(tal)==false) {
    total += tal;
  }
  tal = parseInt(theform.t2.value);
  if (isNaN(tal)==false) {
    total += tal;
  }
  tal = parseInt(theform.t3.value);
  if (isNaN(tal)==false) {
    total += tal;
  }
  theform.total.value=total;
}
</script>

<form>
Valby<input type="text" name="t1" onchange="addformdata(this.form);"><br>
Roskilde<input type="text" name="t2" onchange="addformdata(this.form);"><br>
København<input type="text" name="t3" onchange="addformdata(this.form);"><br>
<input type="text" name="total" disabled><br>
</form>
</body>
</html>
Avatar billede KingMedia Novice
20. september 2003 - 15:09 #5
Sorry my mistake.. er ikke vågen *G*
Avatar billede roadi Nybegynder
20. september 2003 - 15:30 #6
Det virker perfekt, tak eagleeye!

Kan man ændre den farve som den skriver med når man anvender disable?

/Roadi
Avatar billede eagleeye Praktikant
20. september 2003 - 15:36 #7
Jeg tror det ikke, så snart man sætte disabled på bliver den grå også selvom man skriver en anden farve som teksten skal have.

<input type="text" name="total" style="color: red" disabled><br>
Avatar billede roadi Nybegynder
20. september 2003 - 15:40 #8
Okey, thx.

Hvis man nu vil ligge flere felter sammen uafhægigt af hinanden kan man så det?
Avatar billede eagleeye Praktikant
20. september 2003 - 15:47 #9
som det er nu skal man rette i javascript så den få alle felterne med, man kan rette javascriptet så det antager alle felter som hedder tX skal ligges samme så kan der være X antal felter, så der baer ikke andre felter hvis navn må starte med t, man kan lave t til ligsammeX så man ikke kommer til at bruge det.
Avatar billede roadi Nybegynder
20. september 2003 - 15:51 #10
Okey, hvordan gør jeg det?
Avatar billede eagleeye Praktikant
20. september 2003 - 15:54 #11
Du kan lave funktion om til dette, den summere alle de teskt felter som starter med "t" i name.:


function addformdata(theform) {
var total = 0;
var tal;
if (document.all || document.getElementById) {
  for (i = 0; i < theform.length; i++) {
    var tempobj = theform.elements[i];
    var navn = tempobj.name.toLowerCase();
    var tal;
    if (tempobj.type.toLowerCase() == "text" && navn.indexOf("t") == 0) {
      tal = parseInt(tempobj.value);
      if (isNaN(tal)==false) {
        total += tal;
      }
    }
  }
}
theform.total.value=total;
}
Avatar billede roadi Nybegynder
20. september 2003 - 17:05 #12
Okey, nu har jeg fået den til at virke med 3 af felterne..

Hvis jeg så vil 3 andre felter sammen, så kan jeg vel bare kopiere functionen og give den nyt navn, ala (theform2) eller hva?
Avatar billede eagleeye Praktikant
20. september 2003 - 17:10 #13
Både ja og nej, du ksla ikke lave om i selv funtion andet end navnet på funtionen skal være et andet, du skal ikke rette theform->theform2 da det er en varialbe funktionen bruger...

Ja du kan lave en ny funktion hvis de ikke skal være en del de felter som er i forvejen.

Husk også at lave om i denne linje og give de input feltet nogle andre end t1,t2,t3

Hvis du kalder dem sum1,sum2,sum3 skal rette denne linje
if (tempobj.type.toLowerCase() == "text" && navn.indexOf("t") == 0) {

Til:
if (tempobj.type.toLowerCase() == "text" && navn.indexOf("sum") == 0) {
Avatar billede roadi Nybegynder
20. september 2003 - 17:17 #14
Okey, for lige at se om jeg har forstået det rigtig...

Jeg kopiere functionen, så den står der 2 gange..

Så ændre jeg 

Fra:
if (tempobj.type.toLowerCase() == "text" && navn.indexOf("t") == 0) {

Til:
  if (tempobj.type.toLowerCase() == "text" && navn.indexOf("u") == 0) {

Hvad skal jeg ellers rette??
Avatar billede eagleeye Praktikant
20. september 2003 - 17:19 #15
Ok :)
Du skal også rette selve funktions navnet, så de ikke begge hedder addformdata

Du kan evt kalde den nye for:  addformdata_u

Så rette du også input fleterne så de som skal tælles samme som hedder u kalder den nye funktion:
XXXX<input type="text" name="u1" onchange="addformdata_u(this.form);"><br>
Avatar billede roadi Nybegynder
20. september 2003 - 17:25 #16
Okey,det var det jeg manglede *S*

Som du nok kan læse ud af mine spørgsmål er jeg ikke så god til java endnu, men det kommer nok *S*

Tak..
Avatar billede roadi Nybegynder
20. september 2003 - 17:38 #17
Okey lige et spørgsmål mere til professoren..

Hvis jeg nu gerne vil ha' 2 totaler lagt sammen, hvordan klare jeg så den?
Avatar billede eagleeye Praktikant
20. september 2003 - 18:00 #18
Det ikke fordi jeg ikke vil hjælpe men jeg er nød til at løbe.. og er først tilbage i morgen..

men det kan lave enten inde i funktionerne efter

theform.total.value=total;

hvis det andet sum felt hedder total_u og
og det totalt totale hedder summen:


theform.summen.value = total+theform.total_u.value;

Det var for den ene funktion den anden skal det så være total feltet i stedet for total_u
Avatar billede roadi Nybegynder
20. september 2003 - 18:50 #19
Så lykkedes det..

Jeg siger 1000 tak for hjælpen...
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
Kurser inden for grundlæggende programmering

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