Avatar billede spritzer Nybegynder
28. august 2003 - 13:31 Der er 21 kommentarer og
1 løsning

Update tomme felter - men det vil ikke

FORMEN:::::::::::
<form action="reservering.asp?mode=send&id=<%=rs("spilID")%>">
<input type="hidden" name="r" value="sendt">
Send til: <input type="text" name="Skribent"><br>
Dato Sendt: <input type="text" name="Datosendt"><br>
Deadline: <input type="text" name="Deadline"><br>
<input type="submit" value="Send Spil">
</form>

SEND:::::::::::::
<%
case "send"
%>
<%
set conn = server.CreateObject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & server.MapPath("res.mdb")
conn.open DSN

    str1 = request.form("r")
    str2 = request.form("skribent")
    str3 = request.form("datosendt")
    str4 = request.form("deadline")

strSQL3 = "UPDATE reserver SET"

    strSQL3 = strSQL3 & "Status='" & str1 & "'"
    strSQL3 = strSQL3 & ", Skribent ='" & str2 & "'"
    strSQL3 = strSQL3 & ", Datosendt ='" & str3 & "'"
    strSQL3 = strSQL3 & ", Deadline ='" & str4 & "'"

strSQL3 = strSQL3 & " WHERE spilID=" & request.querystring("id")

Conn.Execute(strSQL3)

response.Redirect("reservering.asp")
%>

Hvad gør jeg galt?
Avatar billede erikjacobsen Ekspert
28. august 2003 - 13:34 #1
Så har du vel forbudt tomme felter i Access?
Avatar billede spritzer Nybegynder
28. august 2003 - 13:38 #2
Nej - det ahr jeg ikke... dataerne skal ind i en tabel med en langrække kolonner, som allerede er udfyldt med data.

Status skal skiftes ud, men resten er i tomme felter. Det skal bare være i den samme række. aner ikke om det her giver nogen mening.
Avatar billede nielle Nybegynder
28. august 2003 - 13:41 #3
Ret din:

<form action="reservering.asp?mode=send&id=<%=rs("spilID")%>">

- til:

<form action="reservering.asp method="post">
<input type="hidden" name="mode" value="send">
<input type="hidden" name="id" value="<% =rs("spilID") %>">
Avatar billede nielle Nybegynder
28. august 2003 - 13:43 #4
... og så skal:

strSQL3 = strSQL3 & "Status='" & str1 & "'"

- rettes til:

strSQL3 = strSQL3 & " Status='" & str1 & "'"

- hvsi du ikke vil have en SQL fejl.
Avatar billede spritzer Nybegynder
28. august 2003 - 13:43 #5
??? mode er jo den Case jeg bruger?
Avatar billede nielle Nybegynder
28. august 2003 - 13:46 #6
Den metode du bruger i din form blander POST og GET sammen. Der er bestemt ikke nogen garenti for at det vil virke. Jeg har ændret din kode til en rent POST-baseret løsning.
Avatar billede eagleeye Praktikant
28. august 2003 - 13:48 #7
Brug bare din kode som den er, det vil virke fint nok.

Dog så manger der et mellemrum som nielle og har vist før Status.
Avatar billede erikjacobsen Ekspert
28. august 2003 - 13:48 #8
Du kan i dit oprindelige tilføje  method="post"  - så er der mindre der skal ændres.
Avatar billede nielle Nybegynder
28. august 2003 - 13:48 #9
Jeg ved ikke hvordan din select.ser ud - den har du jo ikke oplyst os - men den skal se nogenlunde således her ud:

select case Request.Form("mode")
Avatar billede spritzer Nybegynder
28. august 2003 - 13:50 #10
Avatar billede nielle Nybegynder
28. august 2003 - 13:50 #11
eagleeye -> Du har da ret i at det givetvis vil fungere, men det er hverken standard html eller særlig pæn html. Desuden er der altså ikke nogen garanti for at det vil virke i alle browere.
Avatar billede eagleeye Praktikant
28. august 2003 - 13:51 #12
Så en querystring er ikke standart HTML?
Avatar billede nielle Nybegynder
28. august 2003 - 13:51 #13
Må vi se din kode? Eller skal vi bare gætte på hvor at du kar skrevet forkert?
Avatar billede nielle Nybegynder
28. august 2003 - 13:56 #14
Nej, "querystring" er ikke standard html - det er nemlig noget som hører til i ASP. Brgrebet er dog et som optræder i samtlige server-side script sprog (om end det hedder noget forskelligt). Det jeg påpegede var blot at det ikke er standard at benytte:

action="reservering.asp?blah-blah>"

- i en formular. Standarden er at man enten bruger POST eller GET. Men som sagt så vil det givetvis virke alligevel.
Avatar billede spritzer Nybegynder
28. august 2003 - 13:56 #15
eerm den er på onkring 280 linjer hele scriptet...

ellers så står hvad jeg har øverst
Avatar billede eagleeye Praktikant
28. august 2003 - 13:57 #16
Som erik skriver mangler der method="post" i din form tag.

<form action="reservering.asp?mode=send&id=<%=rs("spilID")%>" method="POST">


Så prøv at rette din kode til dette:



<%
case "send"
%>
<%
set conn = server.CreateObject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & server.MapPath("res.mdb")
conn.open DSN

    str1 = request.form("r")
    str2 = request.form("skribent")
    str3 = request.form("datosendt")
    str4 = request.form("deadline")

strSQL3 = "UPDATE reserver SET"

    strSQL3 = strSQL3 & " [Status]='" & str1 & "'"
    strSQL3 = strSQL3 & ", Skribent ='" & str2 & "'"
    strSQL3 = strSQL3 & ", Datosendt ='" & str3 & "'"
    strSQL3 = strSQL3 & ", Deadline ='" & str4 & "'"

strSQL3 = strSQL3 & " WHERE spilID=" & request.querystring("id")

Conn.Execute(strSQL3)

response.Redirect("reservering.asp")
%>



Samt det spørgsmål de to datoer du har
datosend og deadline hvilken data type er i databasen tekst??
Avatar billede spritzer Nybegynder
28. august 2003 - 13:59 #17
de er Dato/Klokkeslet.
Avatar billede nielle Nybegynder
28. august 2003 - 14:00 #18
spritzer -> Er det den kode som du har offentliggjort 13:31:50 som fejler - eller er det den kode som du nu har efter at du forhåbentlig har lavet nogle rettelser? Eftersom at vi ikke ved hvordan at dine rettelser ser ud kan vi jo altså ikke finde ud af hvad der er galt.
Avatar billede spritzer Nybegynder
28. august 2003 - 14:01 #19
Hurra det virker - tusind tak, skal lige have et svar jeg kan acceptere
Avatar billede nielle Nybegynder
28. august 2003 - 14:03 #20
Et svar fra hvem?

Anywas, tillykke med det.
Avatar billede eagleeye Praktikant
28. august 2003 - 14:08 #21
Ok ;)

Tkej lige at din dato kommer rigtig i og den ikke bytter rundt på månede og dag for normalt skal datoen formaters til yyyy-mm-dd da SQL bruger det format. Det kan let konveretes med year, month, day. Jeg antager du skriver dato i dd-mm-yyyy i formen.
Og normalt bruger man også # omkring da det er Access..:



<%
case "send"
%>
<%
set conn = server.CreateObject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & server.MapPath("res.mdb")
conn.open DSN

    str1 = request.form("r")
    str2 = request.form("skribent")
    str3 = request.form("datosendt")
    str3 = Year(str3) & "-" & Month(str3) & "-" & Day(str3)
    str4 = request.form("deadline")
    str4 = Year(str4) & "-" & Month(str4) & "-" & Day(str4)

strSQL3 = "UPDATE reserver SET"

    strSQL3 = strSQL3 & " [Status]='" & str1 & "'"
    strSQL3 = strSQL3 & ", Skribent ='" & str2 & "'"
    strSQL3 = strSQL3 & ", Datosendt =#" & str3 & "#"
    strSQL3 = strSQL3 & ", Deadline =#" & str4 & "#"

strSQL3 = strSQL3 & " WHERE spilID=" & request.querystring("id")

Conn.Execute(strSQL3)

response.Redirect("reservering.asp")
%>
Avatar billede spritzer Nybegynder
28. august 2003 - 15:13 #22
Tusind tak igen - nu vil jeg oprette et sidste spørgsmål og så er jeg færdig med "min opgave" - here you go!
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