Avatar billede miomio Nybegynder
18. oktober 2004 - 11:20 Der er 7 kommentarer

Fra Form til Database med ASP

Følgende gælder nedenstående kode:

Jeg ønsker at kunne inddatere et fornavn, der så skal skrives ind i en Access-database ved navn indform.mdb. Nedenstående virker fint uden formen, så hvis der er nogen der kan finde min fejl ligger der 100 point.

<html>
<title>Konference Tilmelding</title>
<head>
</head>
<body>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/indformdb.mdb")
Conn.Open DSN

' SQL sætning opbygges 

strSQL = "Insert into personer ("

strSQL = strSQL & "Fornavn) "

strSQL = strSQL & "values("

strSQL = strSQL & '" & Request.Form("Fornavn") & "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

<form action="/svar.asp" method="post">
<input type="text" name="Fornavn">
<input type="submit" value="Gem">
</form>

</body>
</html>
Avatar billede fennec Nybegynder
18. oktober 2004 - 11:26 #1
Problemet er at du sender formdata til svar.asp og du derfor skal indsættet data på den side. Jeg går ud fra at den kode du har vist her ikke er svar.asp siden...
Avatar billede tofte Juniormester
18. oktober 2004 - 11:26 #2
prøv

strSQL = "Insert into personer ("
strSQL = strSQL & "Fornavn) "
strSQL = strSQL & "values("
strSQL = strSQL & "'" & Request.Form("Fornavn") & "')"
Avatar billede tofte Juniormester
18. oktober 2004 - 11:27 #3
der manglede et ", hvis syntaxen skal være korrekt
Avatar billede fennec Nybegynder
18. oktober 2004 - 11:33 #4
Godt set tofte...

Sådan her gemmer du i databaseen på samme side som formen. Bagefter laver du en redirect til svar.asp

<html>
<title>Konference Tilmelding</title>
<head>
</head>
<body>
<%
if request.querystring("mode") = "save" then
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/indformdb.mdb")
Conn.Open DSN

' SQL sætning opbygges 

strSQL = "Insert into personer ("
strSQL = strSQL & "Fornavn) "
strSQL = strSQL & "values("
strSQL = strSQL & "'" & Request.Form("Fornavn") & "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
response.redirect("svar.asp")
end if
%>

<form action="/DenneSide.asp?mode=save" method="post">
<input type="text" name="Fornavn">
<input type="submit" value="Gem">
</form>

</body>
</html>

Ps. Jeg ved ikke hvad din side hedder, hvorfor jeg har kaldt den DenneSide.asp
Avatar billede miomio Nybegynder
18. oktober 2004 - 11:38 #5
Det er korrekt som Fennec skriver, at koden ikke ligger i svar.asp. Det der ligger i svar.asp er bare en tekst der siger "Din tilmelding er registreret", men hvordan for jeg koden til at indsætte det fornavn jeg inddatere i formen over i databasen?

Miomio
Avatar billede miomio Nybegynder
18. oktober 2004 - 11:52 #6
Fennec har løst problemet - tak. Som nybegynder på Eksperten.dk ved jeg ikke rigtigt hvad jeg skal gøre?

Miomio
Avatar billede fennec Nybegynder
18. oktober 2004 - 11:55 #7
Du skal vente på at der er afgivet et svar fra den person/personer som du vil point. Du får så en liste hvor du kan vælge hvem der skal have point.

.o) <-- One Eyed Jack
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