Du kan give hver radio knap en value 1,2,3. Det skal så havde samme navn så kan du hendte den med Request.Form("navnet") eks:
Spørgsmål: Hvad er 2+2? <input type="radio" name="svar" value="1">Det er 3 <input type="radio" name="svar" value="2">Det er 4 <input type="radio" name="svar" value="3">Det er 5
På siden som tjekker svart..:
svar = Request.form("svar") Hvis du så hender svart til spørgsmålet i databasen..: SQL = "SELECT RigtigtSvar FROM tabel WHERE id = xxx" Set rs = Conn.Execute(SQL)
if Cstr(svar) = CStr(rs("RigtigtSvar")) then Response.write "Du har svaret rigtigt." else Response.write "Du har svaret forkert!!" end if
dim idvar strconnect="Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("spoergsmaal.mdb") SET DbObj=Server.CreateObject ("ADODB.Connection") DbObj.Open strconnect SET tabel=DbObj.Execute("SELECT TOP 1 * FROM Spoergsmaal ORDER BY Rnd([ID]) ")
%> <%idvar = tabel("ID") %>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> <% if tabel.EOF then %> Der er endnu ikke skrevet nogle indlæg.<br> <% else %> <% while not tabel.EOF %> </font></p>
Svar.asp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
<body> svar = Request.form("svar")
<% strconnect="Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("spoergsmaal.mdb") SET DbObj=Server.CreateObject ("ADODB.Connection") DbObj.Open strconnect SET tabel=DbObj.Execute("SELECT Rigtigt FROM Spoergsmaal WHERE id = idvar") %>
Set rs = Conn.Execute(SQL)
if Cstr(svar) = CStr(rs("Rigtigt")) then Response.write "Du har svaret rigtigt." else Response.write "Du har svaret forkert!!" end if
</body> </html>
Der kommer gerne flere Points på bordet, da jeg meger gerne vil have løst dette problem.
du skal i din form gemme den ID som spørgsmålet har så du kan finde svaret på det rigtige spørgsmål, det kan gøres ved at lave et hidden felt i formen eks:
Og på svar siden skal du så hendte ID lige som du hendter svaret med request.form("svar") det skal så lige inden for <% ... %> og ikke som nu hvor det står lige efte <body>
<body> <% svar = Request.form("svar") id = Request.form("id")
Din SQL sætning skal ændre fra: SET tabel=DbObj.Execute("SELECT Rigtigt FROM Spoergsmaal WHERE id = idvar")
Til: SET tabel=DbObj.Execute("SELECT Rigtigt FROM Spoergsmaal WHERE id = " & id)
Der er bare et lille problem med sql sætningen, jeg får følgende fejl:
Technical Information (for support personnel)
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'id ='. /Spørgeskema/svar.asp, line 16
Browser Type: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Sorry, jeg havde misset en <%, som du skrev skulle være efter <body>.
Men der kommer stadig en fejl:
The page cannot be displayed There is a problem with the page you are trying to reach and it cannot be displayed.
Error Type: Provider (0x80004005) Unspecified error /Spørgeskema/svar.asp, line 16
Browser Type: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Page: POST 25 bytes to /Spørgeskema/svar.asp
POST Data: id=3&svar=2&Submit=Submit
Her er koden til svar.asp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
<body> <% svar = Request.form("svar") id = Request.form("id")
strconnect="Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("spoergsmaal.mdb") SET DbObj=Server.CreateObject ("ADODB.Connection") DbObj.Open strconnect SET tabel=DbObj.Execute("SELECT Rigtigt FROM Spoergsmaal WHERE id = " & id) %>
Set rs = Conn.Execute(SQL)
if Cstr(svar) = CStr(rs("Rigtigt")) then Response.write "Du har svaret rigtigt." else Response.write "Du har svaret forkert!!" end if
den sidste %> skal helt ned før </body>. Alt ASP kode skal være mellem en start <% og en slut %> asp-kode "tag"/afgrænsning.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
<body> <% svar = Request.form("svar") id = Request.form("id")
strconnect="Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("spoergsmaal.mdb") SET DbObj=Server.CreateObject ("ADODB.Connection") DbObj.Open strconnect SET tabel=DbObj.Execute("SELECT Rigtigt FROM Spoergsmaal WHERE id = " & id)
Set rs = Conn.Execute(SQL)
if Cstr(svar) = CStr(rs("Rigtigt")) then Response.write "Du har svaret rigtigt." else Response.write "Du har svaret forkert!!" end if %>
Jo, det er den samme database. Jeg har prøvet at kopiere connection string over fra den føreste fil, da jeg ved at denne virker til svar.asp, men jeg får stadig den fejl.
Det er også underligt. Når jeg trykker refresh kommer den med denne fejl: object required: " /spørgeskema/svar.asp, linie 19
Som er denne linie: Set rs = Conn.Execute(SQL)
Men den har stadig variablerne "med" (id=3&svar=3&submit=submit)
For en god orden skyld bør man altid lukke for sine recordset og connections efter man har brugt dem så du bør til føje disse linier efter linien end if
table.Close DbObj.Close Set table = Nothing Set DbObj = Nothing
Så svar.asp bliver, efter jeg har rettet et par stavefejl jeg have lavet i koden i de 3 sidste kommentare:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
<body> <% svar = Request.form("svar") id = Request.form("id")
strconnect="Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("spoergsmaal.mdb") SET DbObj=Server.CreateObject ("ADODB.Connection") DbObj.Open strconnect SET tabel=DbObj.Execute("SELECT Rigtigt FROM Spoergsmaal WHERE id = " & id)
if Cstr(svar) = CStr(tabel("Rigtigt")) then Response.write "Du har svaret rigtigt." else Response.write "Du har svaret forkert!!" end if
tabel.Close DbObj.Close Set tabel = Nothing Set DbObj = Nothing %>
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.