Avatar billede plato Juniormester
19. februar 2004 - 07:36 Der er 14 kommentarer og
1 løsning

Checkbox Ja/Nej, ASP

Hejsa NG.

Hvorfor har jeg problemer med at få ASP koden til at tjekke af i Ja/Nej i databasen?

Det er:
Ja&nbsp;<input type="checkbox" name="udlaant">

Her kommer kode:

<% if mode = "mov_ret" then
                       
'Tjecker om brugeren er logget ind
if session("user") = "" then
Response.Redirect("login.asp")
end if
           
'Henter brugerens profil
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from movie where movuser = '" & Session("user") & "'"
rs.open sql, conn, 1, 3
                           
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                               
'Opdaterer felterner
rs.update
rs("titel") = Server.HTMLEncode(Request("titel"))
rs("slags") = Server.HTMLEncode(Request("slags"))
rs("skuespillere") = Server.HTMLEncode(Request("skuespillere"))
rs("instruk") = Server.HTMLEncode(Request("instruk"))
rs("spilletid") = Server.HTMLEncode(Request("spilletid"))
rs("genre") = Server.HTMLEncode(Request("genre"))
rs("produkaar") = Server.HTMLEncode(Request("produkaar"))
rs("udlaannavn") = Server.HTMLEncode(Request("udlaannavn"))
rs("udlaant") = Request.form("udlaant")
rs("handling") = Server.HTMLEncode(Request("handling"))
rs("stars") = Server.HTMLEncode(Request("stars"))
rs.update
end if
%>
                       
<form method="post" action="profile.asp?mode=mov_ret">
<strong>Titel:</strong><br>
<input class="forms" size="20" type="text" name="titel" value="<%=rs("titel")%>"><br><br>
<strong>Type (VHS/DVD):</strong><br>
<input class="forms" size="20" type="text" name="slags" value="<%=rs("slags")%>"><br><br>
<strong>Skuespillere (Adskil medk komma):</strong><br>
<input class="forms" size="20" type="text" name="skuespillere" value="<%=rs("skuespillere")%>"><br><br>
<strong>Instruktør:</strong><br>
<input class="forms" size="20" type="text" name="instruk" value="<%=rs("instruk")%>"><br><br>
<strong>Spilletid:</strong><br>
<input class="forms" size="20" type="text" name="spilletid" value="<%=rs("spilletid")%>"><br><br>
<strong>Genre:</strong><br>
<input class="forms" size="20" type="text" name="genre" value="<%=rs("genre")%>"><br><br>
<strong>Produktions År:</strong><br>
<input class="forms" size="20" type="text" name="produkaar" value="<%=rs("produkaar")%>"><br><br>
<strong>Handling:</strong><br>
<textarea name="handling" cols="35" rows="4" class="forms"><%=rs("handling")%></textarea><br><br>
<select class="valg" Name="stars">
<option Value="">- Vælg -
<option Value="img src=pics/baggrund/s1.gif">1
<option Value="img src=pics/baggrund/s2.gif">2
<option Value="img src=pics/baggrund/s3.gif">3
<option Value="img src=pics/baggrund/s4.gif">4
<option Value="img src=pics/baggrund/s5.gif">5
<option Value="img src=pics/baggrund/s6.gif">6
</select><br><br>
Er filmen udlånt:<br>
Ja&nbsp;<input type="checkbox" name="udlaant">&nbsp;&nbsp;Til:&nbsp;&nbsp;<input class="forms" type="text" size="20" name="udlaannavn"><br><br>
<input class="formsknap" size="20" type="submit" value="Opdater" id=submit1 name=submit1></form>
</form><br><br><a  href="profile.asp?mode=mov_list">Tilbage</a>
               
<%
rs.close
set rs = nothing
end if %>
Avatar billede multicoder Nybegynder
19. februar 2004 - 08:10 #1
<input type="checkbox" name="udlaant"<% if rs("udlaant") == "ja" then response.write "checked" end if %>>
Avatar billede fennec Nybegynder
19. februar 2004 - 08:17 #2
Request.form("udlaant") = "ok" 'eller hvilken value der nu er sat i checkboxen
  rs("udlaant") = "ja"
else
  rs("udlaant") = "nej"
end if

hvis det er et frue/false felt skal du indsætte "true"/"false"
Avatar billede plato Juniormester
19. februar 2004 - 08:28 #3
multicoder

Det giver:
Provider error '80020005'

Type mismatch.


fennec:

Skal det ind sådan her:

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                               
'Opdaterer felterner
rs.update
rs("titel") = Server.HTMLEncode(Request("titel"))
rs("slags") = Server.HTMLEncode(Request("slags"))
rs("skuespillere") = Server.HTMLEncode(Request("skuespillere"))
rs("instruk") = Server.HTMLEncode(Request("instruk"))
rs("spilletid") = Server.HTMLEncode(Request("spilletid"))
rs("genre") = Server.HTMLEncode(Request("genre"))
rs("produkaar") = Server.HTMLEncode(Request("produkaar"))
rs("udlaannavn") = Server.HTMLEncode(Request("udlaannavn"))
rs("handling") = Server.HTMLEncode(Request("handling"))
rs("stars") = Server.HTMLEncode(Request("stars"))
Request.form("udlaant") = "ok" 'eller hvilken value der nu er sat i checkboxen
rs("udlaant") = "ja"
else
rs("udlaant") = "nej"
end if
rs.update
end if

Det giver nemlig fejl.

Expected statement
end if
Avatar billede plato Juniormester
19. februar 2004 - 08:28 #4
feltet i databasen hedder som skrevet "udlaant" og i designvisning har jeg sat den til Ja/Nej
Avatar billede fennec Nybegynder
19. februar 2004 - 08:46 #5
if Request.form("udlaant") = "ok" 'eller hvilken value der nu er sat i checkboxen
rs("udlaant") = "ja"
else
rs("udlaant") = "nej"
end if

min fejl. der manglede lige en "if"
Avatar billede plato Juniormester
19. februar 2004 - 09:20 #6
Smed lige et Then efter "OK"..

Men "Type mismatch."

Med value i chechboxen mener du <input type="checkbox" value="ok">?

Jeg tror det er i
rs("udlaant") = "ja"
else
rs("udlaant") = "nej"
end if

Den giver fejl, efter hvad jeg lige kan tælle...
Avatar billede plato Juniormester
19. februar 2004 - 09:23 #7
Tror du man i stedet for Ja og Nej skal bruge 1 og 0 ?
Avatar billede netro Nybegynder
19. februar 2004 - 09:26 #8
Brug hellere en SQL-sætning til at opdatere med. Det andet kan give dig problemer.

SQL = "Update movie Set titel = '" & Server.HTMLEncode(Request("titel"))
& "', slags = '" & Server.HTMLEncode(Request("slags"))
& "' where movuser = '" & Session("user") & "'"
Avatar billede plato Juniormester
19. februar 2004 - 09:27 #9
Nopes...Hehe..Det hjalp ikke.
Avatar billede plato Juniormester
19. februar 2004 - 09:27 #10
Det prøver jeg lige :)
Avatar billede plato Juniormester
19. februar 2004 - 09:28 #11
Skal jeg så stadig have dette her med:

if Request.form("udlaant") = "ok" 'eller hvilken value der nu er sat i checkboxen
rs("udlaant") = "ja"
else
rs("udlaant") = "nej"
end if
Avatar billede fennec Nybegynder
19. februar 2004 - 09:28 #12
Nu skulle koden være rigtig. Det lader til at det nu er værdien du gemme i databasen der er forkert. Prøv at gemme "true"/"false" i stedet...

Du kan evt. ændre typen til varchar(3), hvis det ikke er nødvendig med et boolean felt, så skal det virke. Men du kan sikkert ikke ændre den tilbage igen. Du vil dog stadig gemme "ja"/"nej" i det tilfælde, men det fylder mere....
Avatar billede plato Juniormester
19. februar 2004 - 09:34 #13
netro..

Ups, ved hvad du mener..

fennec..Nu virker det. Det var True/False

Tak!
Avatar billede plato Juniormester
19. februar 2004 - 09:34 #14
Skal bruge et svar ;-)
Avatar billede fennec Nybegynder
19. februar 2004 - 09:41 #15
ok.
I de fleste tilfælde er det også true/false der skal indsættes.....
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