Avatar billede Slettet bruger
09. marts 2006 - 11:52 Der er 11 kommentarer og
1 løsning

Udregning af procent i ASP

Hej
Er der nogen der kan hjælpe med ovenstående ? Jeg har en spørgeskema som skal udfylde med %. Der er 4 spørgsmål og det skal laves således at resultatet ikke kan give mere end 100%. F. eks. at man udfylder med 25% i alle fire felter eller 50% 10% 20% og 20%. Min kode ser sådan ud:
<html>

<head>
<title>Spørgeundersøgelse</title>
</head>

<body leftmargin="0">

<form METHOD="POST" action="test.asp" onSubmit="return(validate(this));">
  <table width="497" cellspacing="0" cellpadding="5" bgcolor="#E6E6E6" bordercolor="#FFFFFF"
  border="1">
    <tr>
      <td ALIGN="left" height="25" width="286" valign="top">Spørgsmål 1</td>
      <td ALIGN="left" height="25" width="344"><input type="text" name="sp1" size="5">%</td>
    </tr>
    <tr>
      <td ALIGN="left" height="25" width="286" valign="top">Spørgsmål 2</td>
      <td ALIGN="left" height="25" width="344"><input type="text" name="sp2" size="5">%</td>
    </tr>
    <tr>
      <td ALIGN="left" height="25" width="286" valign="top">Spørgsmål 3</td>
      <td ALIGN="left" height="25" width="344"><input type="text" name="sp3" size="5">%</td>
    </tr>
    <tr>
      <td ALIGN="left" height="25" width="286" valign="top">Spørgsmål 4</td>
      <td ALIGN="left" height="25" width="344"><input type="text" name="sp4" size="5">%</td>
    </tr>
    <tr>
      <td ALIGN="left" height="25" width="286" valign="top"></td>
      <td ALIGN="left" height="25" width="344"><input type="text" name="resultat" size="10"
      value="100%"></td>
    </tr>
    <tr>
      <td ALIGN="left" height="27" width="286"></td>
      <td height="27" width="344">&nbsp;<input TYPE="submit" VALUE="Send" name="Send">&nbsp;&nbsp;
      <input TYPE="reset" VALUE="Slet" name="Slet "></td>
    </tr>
  </table>
</form>

<p align="right">&nbsp;</p>
</body>
</html>
Avatar billede eagleeye Praktikant
09. marts 2006 - 14:43 #1
Hvad er det du spørger om?

Skal den ligge de 4 tal samme og tjekke om det giver 100?
Avatar billede Slettet bruger
09. marts 2006 - 14:47 #2
Yes, det er lige hvad jeg spørger om og det må ikke give hverken mere eller mindre, hvis det overhovedet kan lade sig gøre. Det kan jeg ikke lige genneskue ?
Avatar billede eagleeye Praktikant
09. marts 2006 - 15:01 #3
Ja men er det noget som skal ske mens man skrive tallene i formen skal det laves i javascript er det noget du skal regne ud hvor man trykke send kan det laves i ASP.

I ASP kan du kan hente værdien af hver text fejl med: Request.Form("xxx") hvor xxx er navnet på textfeltet. Eks:

if request.servervariables("REQUEST_METHOD") = "POST" then
  sp1 = Request.Form("sp1")
  sp2 = Request.Form("sp2")
  sp3 = Request.Form("sp3")
  sp4 = Request.Form("sp4")

  total = sp1 + sp2 + sp3 + sp4
end if
Avatar billede Slettet bruger
09. marts 2006 - 15:05 #4
Det er noger der skal regnes ud inden man får lov til at sende, fordi resultatet( indholdet af de fire felter) skal lægges i en datbase.
Avatar billede eagleeye Praktikant
09. marts 2006 - 15:11 #5
Så høre spørgsmålet nok bedre hjemme i javascript kategorien. Umiddelbart kan man gøre det i den funktion du har lavet ved onSubmit i form tagen. Man kan også lave en funktion som for hver gang man skriver et tal regner summen ud, og evt opdater resultat input feltet.
Avatar billede Slettet bruger
09. marts 2006 - 15:20 #6
Kan du beskrive det lidt nærmere?
Avatar billede eagleeye Praktikant
09. marts 2006 - 15:30 #7
Eks:

<script>
function validate(theform) {
var total = 0;
  total += theform.sp1.value;
  total += theform.sp2.value;
  total += theform.sp3.value;
  total += theform.sp4.value;

  if (total == 100)
  {
    return true;
  }
  else
  {
    alert("Summen skal give 100%!");
    return false;
  }

}
</script>


og så form tagen skal lige rettes til:

<form METHOD="POST" action="test.asp" onSubmit="return validate(this);">
Avatar billede Slettet bruger
09. marts 2006 - 15:37 #8
Næste perfekt, bortset fra at den kommer med alert også når summen er 100 ?
Avatar billede eagleeye Praktikant
09. marts 2006 - 15:46 #9
ARh ok prøve lige sådan her:

<head>
<title>Spørgeundersøgelse</title>
<script>
function validate(theform) {
var total = 0;
  total += parseInt(theform.sp1.value);
  total += parseInt(theform.sp2.value);
  total += parseInt(theform.sp3.value);
  total += parseInt(theform.sp4.value);

  if (total == 100)
  {
    return true;
  }
  else
  {
    alert("Summen skal give 100%!");
    return false;
  }
}
</script>
Avatar billede eagleeye Praktikant
09. marts 2006 - 15:48 #10
hmm altså kun funktionen, jeg fik vist kopiet lidt for meget med :)
Avatar billede Slettet bruger
09. marts 2006 - 15:49 #11
Perfekt, smid et svar så får du dine velfortjente point. Tak.
Avatar billede eagleeye Praktikant
09. marts 2006 - 15:49 #12
Ok her et svar ;-)
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