Toon posts:

ASP/VBscript vraagje.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik snap het niet, onderstaand scriptje werkt niet goed. Op een of andere manier klopt het resultaat niet. Het zit zo in elkaar: in een html bestand staan een aantal vragen mdmv radio buttons kun je uit vier mogelijkheden een antwoord kiezen. Bij iedere vraag zijn 1 of 2 antwoorden goed.
Als je een vraag goed hebt, geeft hij de waarde 1 terug, anders 0. Vervolgens tel ik alle waarden bij elkaar op en als dat kleiner is dan 5, gaat ie naar 'Bestand1', anders naar 'Bestand2'.

Als ik echter bij de eerste vraag bijv. kies voor het goede antwoord en de rest niet invul of verkeerd, gaat ie al naar 'Bestand2'. Ik begrijp er niets van. :(

Dit is het script:

<%@ Language=VBScript %>
<%Option Explicit

sub fsbMain()
dim liVraag1, liVraag2, liVraag3, liVraag4, liVraag5, liVraag6, liVraag7, liVraag8, liVraag9, liVraag10, liScore
liVraag1 = Request("Vraag1")
liVraag2 = Request("Vraag2")
liVraag3 = Request("Vraag3")
liVraag4 = Request("Vraag4")
liVraag5 = Request("Vraag5")
liVraag6 = Request("Vraag6")
liVraag7 = Request("Vraag7")
liVraag8 = Request("Vraag8")
liVraag9 = Request("Vraag9")
liVraag10 = Request("Vraag10")
liScore = liVraag1 + liVraag2 + liVraag3 + liVraag4 + liVraag5 + liVraag6 + liVraag7 + liVraag8 + liVraag9 + liVraag10

If liScore < 5 then
Response.Redirect "bestand1.html"
else
Response.Redirect "bestand2.html"
end if
end sub

fsbMain
%>

Verwijderd

Getal + NULL value (is wat je krijgt als je iets niet in vuld) is altijd NULL, Converteer je NULL values naar een numerike nul (0) en alles komt goed, succ6!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

simpel
je check niet op het aantal vakjes dat is ingevuld
dus je if<5 werkt gelijk al :P

<edit>
wat Yarvieh zegt kan ook

Doet iets met Cloud (MS/IBM)


  • gewse-hco
  • Registratie: Januari 2001
  • Laatst online: 24-06 14:22
Ja.. op zich ook niet zo gek he ?

aangezien je maar 1 vraag goed hebt.. < 5 dus.. gaat ie naar pagina 1.

als je nu eens 5 antwoorden goed invult... dan moet ie als het goed is wel naar pagina 2 gaan.

Verwijderd

Topicstarter
In het html formulier hebben de radio buttons de value 0 of 1. Deze worden dan vervolgens opgeteld in het script. Moet ik dan die values aanpassen?? Ik snap het nog niet helemaal (I'm a newbie U know..).

Verwijderd

Whoops weer es niet goed gelezen, negeer mijn eerdere antwoord maar. /me loopt fluitend de andere kant op :z

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 25 september 2001 11:21 schreef Yarvieh het volgende:
Whoops weer es niet goed gelezen, negeer mijn eerdere antwoord maar. /me loopt fluitend de andere kant op :z
zeg het maar

* D2k heeft gelijk

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Op dinsdag 25 september 2001 11:17 schreef gewse-hco het volgende:
Ja.. op zich ook niet zo gek he ?

aangezien je maar 1 vraag goed hebt.. < 5 dus.. gaat ie naar pagina 1.

als je nu eens 5 antwoorden goed invult... dan moet ie als het goed is wel naar pagina 2 gaan.
Nee, je geeft alleen op vraag 1 het goede antwoord, en dat gaat ie dus al naar pagina 2. Hij zou dus naar pagina 1 moeten gaan <5

Verwijderd

D2k heeft gelijk.

Zal het gelijk even onderbouwen:

if null < 5 resulteerd ook in NULL waardoor ie dus logish gezien de else tak in had moeten vliegen, dit gebeurd echter niet, conclusie geen NULL problemen hier..

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 25 september 2001 11:25 schreef Student het volgende:

[..]

Nee, je geeft alleen op vraag 1 het goede antwoord, en dat gaat ie dus la naar pagina 1. Hij zou dus naar pagina 2 moeten gaan <5
huh?

volgens mij niet hoor

<edit> o je hebt het al aangepast

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
D2k, je hebt gelijk ik had het per ongeluk omgedraait. Hij zou naar bestand2 moeten gaan, maar gaat dus al naar bestand1.

Maar wat je zegt is goed met die vakjes controleren, maar kun je ook zeggen hoe ik het script dan moet aanpassen zodat het wel werkt?


Alvast bedankt!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 25 september 2001 11:30 schreef Student het volgende:
D2k, je hebt gelijk ik had het per ongeluk omgedraait. Hij zou naar bestand2 moeten gaan, maar gaat dus al naar bestand1.

Maar wat je zegt is goed met die vakjes controleren, maar kun je ook zeggen hoe ik het script dan moet aanpassen zodat het wel werkt?


Alvast bedankt!
nou zo goed is mijn asp kennis niet
bovenstaande komt gewoon uit programmeerkennis
voor dat asp checken zal je het moeten zoeken in een lus denk ik?? en dan als de teller 10 keer is doorlopen pas je redirect doen

Doet iets met Cloud (MS/IBM)


  • Ashbjorn
  • Registratie: Maart 2001
  • Laatst online: 07-04-2019

Ashbjorn

Who's your daddy! WHUZAAA

2 Opties:

[1] Je returned een string en gaat die optellen, CInt() je Request waardes!!!

[2]
Ik zou het echt radicaal anders toepassen.

Maak gebruik van de Item collectie van Request.Form.

Oftewel:

<%
'---------------------------------------------------------

Dim sKey
Dim nItemCount
Dim nItemIndex

If Request.Form = "" Then
Response.Write "<BR>Form data is not present!"
Else
Response.Write "<BR>Form data:"

Response.Write("<OL>")
For Each sKey In Request.Form
Response.Write("<LI>")
Response.Write(sKey & " = ")
nItemCount = Request.Form(sKey).Count
If nItemCount = 1 Then
Response.Write("""" & Request.Form(sKey) & """")
Else
Response.Write("<OL>")
For nItemIndex = 1 To nItemCount
Response.Write("<LI>""" & Request.Form(sKey)(nItemIndex) & """</LI>")
Next
Response.Write("</OL>")
End If
Response.Write "</LI>"
Next
Response.Write("</OL>")
End If

'---------------------------------------------------------
%>

Omdat ik heel vaak een form moest controleren is het bovenstaande geconstrueerd om heeeel simpel al je Form waardes te controleren, bovenstaand script is ook vrij simpel aan te passen.

Atl.

[Edit:] Ik zie dat de Tabs niet goed getoond worden dus script ziet er iets on overzichtelijker uit.

Athlon 64 3500+ || MSI Neo2 Platinum || 1GB PC3200 Corsair XLPRO 2-2-2-5@1T || Hitachi SATA 250GB@7200 8MB || WD Raptor 73GB@10000 8MB || AOpen GF 6800 GT 256MB || SB Audigy2 Platinum || Logitech Laser G5 || 19" Iiyama HM903DT || 1280@100Hz


Verwijderd

Topicstarter
Atlantez, thanks. Dat is dus de ASP, maar moet ik verder nog iets veranderen aan die ASP of in het HTML formulier? Want nu werkt ie toch niet helemaal. Dat html form bestaat eigenlijk kort samengevat uit het volgende:

<form method="POST" action="getit.asp" id="test" name="test">

<input type="radio" value="0" name="Vraag1">Fout antwoord
<input type="radio" value="1" name="Vraag1">Goed antwoord

<input type="submit" value="Resultaat" name="CheckAnswers">
</form>

En dit dan voor 10 vragen in plaats van 1, natuurlijk.

</body>
</html>
Pagina: 1