Avatar billede nikkib Nybegynder
24. september 2008 - 16:16 Der er 9 kommentarer og
1 løsning

Form spørgsmål

Jeg har en DanDomain webshop, hvor jeg har lavet et asp script, som får data fra 2 felter, som du kan se i nedenstående. Men mit resultat får jeg i et nyt vindue. Jeg skal bruge resultatet i samme vindue i feldtet "total" og samtidigt skulle der gerne være taget højde for at brugeren indtaster en ny værdi efter første gang, uden det går ned. Sikkert meget simpelt, men jeg har ikke meget erfaring med html programmering. Håber der er nogle der kan hjælpe.

Med venlig hilsen

Nikki Bertelsen

html kode
<body>
        <form action="/images/bh.asp" method="post">
            <input name="felt1" type="text" /><br />
            <input name="felt2" type="text" /><br />
            <input id="Submit" type="submit" name="Submit1" value="Beregn 1" /> <input name="total" type="text" /><br />
        </form>
    </body>
ASP script
<%
VAR = Request.Form("felt1") - Request.Form("felt2")
IF VAR => 12 And VAR <= 14 Then   
Response.write "A"

ElseIf VAR => 15 And VAR <= 16 Then   
Response.write "B"

ElseIf VAR => 17 And VAR <= 18 Then   
Response.write "C"

ElseIf VAR => 19 And VAR <= 21 Then   
Response.write "D"

ElseIf VAR => 22 And VAR <= 23 Then   
Response.write "E"

ElseIf VAR => 24 And VAR <= 25 Then   
Response.write "F"

ElseIf VAR => 26 And VAR <= 27 Then   
Response.write "G"

ElseIf VAR => 28 And VAR <= 29 Then   
Response.write "H"

ElseIf VAR => 30 And VAR <= 31 Then   
Response.write "I"

ElseIf VAR => 32 And VAR <= 33 Then   
Response.write "J"

ElseIf VAR => 34 Then   
Response.write "Ukendt størrelse"

ElseIf VAR =< 1 Then   
Response.write "Ukendt størrelse"

ElseIf var < 12 Then
Response.write "Ukendt"

End if

%>
Avatar billede olebole Juniormester
24. september 2008 - 16:31 #1
<ole>

Prøv noget i stil med:

<script type="text/javascript">
function foo(oInp) {
    var f = oInp.form;
    var y, x = (f.navn1.value*1) - (f.navn2.value*1);

    if (x=>12 && x<=14) y = "A";
    else if (x=>15 && x<=16) y = "B";
    else if (x=>17 && x<=18) y = "A";
    /* ... osv, osv ... */

    f.total.value = y;
}
</script>

        <form action="/images/bh.asp" method="post">
            <input name="felt1" type="text" onblur="foo(this,'navn2')"><br>
            <input name="felt2" type="text" onblur="foo(this,'navn1')"><br>
            <input name="total" type="text"><br>
            <input id="Submit1" type="submit" name="Submit1" value="Beregn 1"> <input name="total" type="text"><br>
        </form>

/mvh
</bole>
Avatar billede olebole Juniormester
24. september 2008 - 16:32 #2
PS: Læg mærke til, du ikke må have elementer med name- eller id="submit"
Avatar billede nikkib Nybegynder
24. september 2008 - 17:01 #3
Tak glebole for det hurtige svar. Jeg kender ikke java script, men har indsat dette på min side. Her er det bare mit eget script der bliver kørt. Hvis jeg kun sætter javascript får jeg en blank side, sikkert fordi form action skal med, jeg ved bare ikke hvor.

<body>
<script type="text/javascript">
function foo(oInp) {
    var f = oInp.form;
    var y, x = (f.navn1.value*1) - (f.navn2.value*1);

    if (x=>12 && x<=14) y = "A";
    else if (x=>15 && x<=16) y = "B";
    else if (x=>17 && x<=18) y = "A";
      f.total.value = y;
}
</script>

        <form action="/images/bh.asp" method="post">
            <input onblur="foo(this,'navn2')" name="felt1" type="text" /><br />
            <input onblur="foo(this,'navn1')" name="felt2" type="text" /><br />
            <input id="total" type="submit" name="total" value="Beregn 1" /> <input name="total" type="text" /><br />
                  </form>
    </body>
Avatar billede olebole Juniormester
24. september 2008 - 17:18 #4
Sorry, jeg havde lavet en del fejl. Nu er det testet  ;o)

<script type="text/javascript">
function foo(oInp) {
    var f = oInp.form;
    var valA = f.felt1.value;
    var valB = f.felt2.value;
    if (valA=="" || valB=="") return;
    var y, x = (valA*1) - (valB*1);
   
    if (x>=12 && x<=14) y = "A";
    else if (x>=15 && x<=16) y = "B";
    else if (x>=17 && x<=18) y = "C";
    else y = "ukendt";
    f.total.value = y;
}
</script>

        <form action="/images/bh.asp" method="post">
            <input onblur="foo(this,'navn2')" name="felt1" type="text" /><br />
            <input onblur="foo(this,'navn1')" name="felt2" type="text" /><br />
            <input type="submit" value="Beregn 1" /> <input name="total" type="text" /><br />
        </form>
Avatar billede olebole Juniormester
24. september 2008 - 17:20 #5
Beregningen sker, så snart brugeren klikker et sted udenfor et felt ... f.eks. på knappen. Du kan også bare prøve at klikke i et tomt område af dokumentet
Avatar billede olebole Juniormester
24. september 2008 - 17:22 #6
- og du behøver ikke det andet argument i funktionskaldene:
    onblur="foo(this,'navn2')"

Du kan nøjes med:
    onblur="foo(this)"

- ved begge felter  =)
Avatar billede nikkib Nybegynder
25. september 2008 - 08:28 #7
Tak olebole

Så fik jeg det til at virke.
Avatar billede nikkib Nybegynder
25. september 2008 - 08:29 #8
f
Avatar billede nikkib Nybegynder
25. september 2008 - 08:29 #9
Kan du ikke sende en svar meddelse så du kan få dine point
Avatar billede olebole Juniormester
25. september 2008 - 15:04 #10
Jo tak  ;o)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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