Avatar billede tahoo Nybegynder
03. juli 2002 - 21:03 Der er 12 kommentarer og
1 løsning

form igen

Hejsa (ved godt jeg lige har stillet et spørgsmål omkring dette - men bliver nød til at have hjælp igen :-))

Jeg skal have en form, som består af "checkbox" -
den checkbox skal "hænge" sammen med en database, sådan når box er "on" bliver checkbox i databasen også "on" - og omvendt, men når man går ind på form siden skal checkboxen stå til det som den gør i databasen. Sådan man kan se på form siden - hvordan den er i databasen (altså 0 eller 1) ind man fx. vælger at lave den om.


Det er det, som jeg har fået lavet, nogle som kan hjælpe mig med det sidste ?
------------------------------------------------

<form name="form1" method="post" action="m.asp">
<input type="submit" name="Submit" value="Send">
</form>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("test.mdb")
Conn.Open DSN

strSQL = "Update tabel set hallo=('" & request.form("box") & "') where Id=35"

response.write "opdateret"

Conn.Execute(strSQL)
Conn.Close
%>
Avatar billede eagleeye Praktikant
03. juli 2002 - 21:13 #1
En check-box fra en form giver dig værdien af value delen og ikke om den er checked eller ej. Hvis der er kryds i får du værdien af value:
Værdien du skal gemme i databasen skal være 1 for true og 0 for false... Og man skal ikke bruger ' omkring.

Så du skal tjekke på om du får en værdi eller ej:

if request.form("box") <> "" then
  felt_box = true
else
  felt_box = false
end if

Så SQLen:
strSQL = "Update tabel set hallo=" & felt_box & " where Id=35"
Avatar billede eagleeye Praktikant
03. juli 2002 - 21:15 #2
Glemt lige den check box skal se ud i stil med:

<input type="checkbox" name="box" value="noget">
Avatar billede tahoo Nybegynder
03. juli 2002 - 21:28 #3
Tak for dit svar

jeg er ikke lige 100 % med på den, gider du ikke sætte den ind i koden for mig...
Avatar billede eagleeye Praktikant
03. juli 2002 - 21:31 #4
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("test.mdb")
Conn.Open DSN

if request.form("box") <> "" then
  felt_box = true
else
  felt_box = false
end if

strSQL = "Update tabel set hallo=" & felt_box & " where Id=35"

Conn.Execute(strSQL)
Conn.Close

response.write "opdateret"
%>
Avatar billede tahoo Nybegynder
03. juli 2002 - 21:40 #5
ok det virker hvis jeg skriver :
felt_box = 1
else
felt_box = 0

ellers kommer den med fejl (ved ikke hvorfor)

----------Men det er også super-------------
Form :
<form name="form1" method="post" action="s.asp">
  <input type="checkbox" name="box" value="et-eller-anden">
  <input type="submit" name="Submit" value="Send">
</form>

Men man må da kunne skrive "et-eller-andet" i value - sådan den går ind i databasen og se efter om det er 0 eller 1 - og hvis den så er 1 i databasen bliver den afkrydset i formen.
Avatar billede tahoo Nybegynder
03. juli 2002 - 21:42 #6
lige en ting:

if request.form("box") <> "" then --> gider du og forklare hvorfor <> "" ?? (er ny i asp)
Avatar billede eagleeye Praktikant
03. juli 2002 - 21:46 #7
Ok. Form skal hvade en default som i databasen, så skal du hendte værdien (true/false) fra databasen på form siden. Man skal i  HTML skrive CHECKED i checkboxen hvis der default skal være kryds i den:


<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("test.mdb")
Conn.Open DSN
strSQL = "SELECT hallo FROM tabel where Id=35"
Set rs=Conn.execute(strSQL)
%>

<form name="form1" method="post" action="s.asp">
  <input type="checkbox" name="box" value="et-eller-anden"
<% if rs("hello") = true then
    response.write " CHECKED "
end if %> >
  <input type="submit" name="Submit" value="Send">
</form>

rs.Close
Conn.Close
Avatar billede eagleeye Praktikant
03. juli 2002 - 21:49 #8
Forklaring af:  if request.form("box") <> "" then

"" er en tomstreng.
<> betyder forskællig fra (eller ikke lig med)

Så det man tjekker på er om value fra Checkbox'en "box" er forskællig fra en tom streng. Hvis man har sat kryds i den så vil Request.Form("box") være = "et-eller-anden".
Avatar billede tahoo Nybegynder
03. juli 2002 - 22:04 #9
Det syntes jeg ikke helt virker måske har jeg sat det forkert ind.

min form.asp :
---------------------------------------------
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("test.mdb")
Conn.Open DSN
strSQL = "SELECT hallo FROM tabel where Id=35"
Set rs=Conn.execute(strSQL)
%>

<form name="form1" method="post" action="s.asp">
  <input type="checkbox" name="box" value="et-eller-anden"
<% if rs("hello") = true then
    response.write " CHECKED "
end if %> >
  <input type="submit" name="Submit" value="Send">
</form>

<%
rs.Close
Conn.Close
%>

------------------------min s.asp----------------------

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("test.mdb")
Conn.Open DSN

if request.form("box") <> "" then
  felt_box = 1
else
  felt_box = 0
end if

strSQL = "Update tabel set hallo=" & felt_box & " where Id=35"

Conn.Execute(strSQL)
Conn.Close

response.write "opdateret"
%>

------------------------------------
kan du se nogle fejl ?
Avatar billede eagleeye Praktikant
03. juli 2002 - 22:15 #10
Kan du se om databasen bliver opdateret?
Avatar billede eagleeye Praktikant
03. juli 2002 - 22:21 #11
Jeg kan se en fejl.. Jeg har skrev hello og ikke hallo i denn linie:

<% if rs("hello") = true then

Rettes til:
<% if rs("hallo") = true then
Avatar billede tahoo Nybegynder
03. juli 2002 - 22:23 #12
heh jeg så det også lige nu -- det virker tak for hjælpen :-)
Avatar billede eagleeye Praktikant
03. juli 2002 - 22:24 #13
Det var så lidt :) tak for points.
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