Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 16:05 Der er 10 kommentarer og
1 løsning

Validering af checkbox

Ja så bliver jeg nød til at bede om hjælp igen :-(
Jeg har 2 asp sider. Den første kan brugeren via et formfelt indgive nogle data, dels i tekstfelter og et par checkboxe.
Data blive nu sendt i en database - fint nok.
Med side 2 kan brugeren kalde dataerne frem igen for evt. at rette i disse.

Fra tekstfelterne ser linien sådan ud:
<input name="telefon" type="text" value="<% = data("telefon")%>" size="30" maxlength="8">
    Telefon
Dataerne kommer fint frem her.

Checkboxenes data kommer ned sådan i databasen:
<input name="bold" type="checkbox" value="x">Boldsponsor
Og det virker også fint

Men når de skal op ser det sådan ud:
<input type="checkbox" name="bold" value="<% = data("bold")%>">
    Boldsponsor

Her reagerer checkboxene ikke!!!!
Det skal lige siges at brugeren nødvendigvis ikke skal indgive noget - men kan. Og gør de det skal dataerne jo også frem igen.

Det er linien her som volder store kvaler:
<input type="checkbox" name="bold" value="<% = data("bold")%>">
    Boldsponsor

Håber i har tid - og jeg har af en eller mærkelig grund ingen point, hvorfor ved jeg ikke, så jeg må håbe på en venlig sjæl

M.v.h. Bjarne
Avatar billede nythjem Nybegynder
21. juli 2004 - 16:11 #1
Hej Bjarne!

Du har med true / false at gøre. Derfor skal du indentificere dette.

<input type="checkbox" name="bold" <% If data("bold") = True Then %>checked<% End If %>>
Avatar billede nythjem Nybegynder
21. juli 2004 - 16:12 #2
Altså,

- hvis værdien er True, så skal checkboxen være afkrydset (checked)
- hvis ikke, så ingen ingenting..
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 16:25 #3
Hej nythjem
Først tak fordi du har tid trods min mangel på point (hvor de så end er blevet af).
Linien har jeg netop afprøvet - og der sker intet - absolut intet.
Er du helt sikker på at der ikke skal føres noget mere på?

Bjarne
Avatar billede nythjem Nybegynder
21. juli 2004 - 16:29 #4
Hej Bjarne.

Point betyder ikke noget, vi er jo til for at hjælpe hinanden :)

Er du sikker på, at Checkboxen er checked i databasen?

Normalt ville jeg gøre sådan her, når jeg ligger værdien ind i databasen..

### I den fil, hvor brugeren afkrydser ###
<input type="checkbox" name="feltnavn" value="ON">

### Input til databasen ###

if request("feltnavn") = "ON" then
strSQL = strSQL & "feltnavn        = True, "
else
strSQL = strSQL & "feltnavn        = False, "
end if
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 16:57 #5
Det er sjovt nok at hvis jeg kun anvender checkboxe under nypost - input til databasen, og når jeg vil have output fra databasen for evt. justeringer ændrer disse til tekstboks - så virker alt.

Jeg prøver det andet her, men jeg må erkende at jeg ikke kan få det til at virke.
Avatar billede nythjem Nybegynder
21. juli 2004 - 17:05 #6
Hvilke felter har du, så tager vi den lige fra bunden :)

Databasens navn
Felters Navn & type
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 17:46 #7
Ja jeg sad faktisk og overvejede om jeg kunne tillade mig at spørge dig...
Vi kan prøve med en test.
Jeg opretter en ny database og kalder den TEST. Tabellen kan vi kalde OPLYSNING. 5 celler - id, firma, telefon, vip, erhverv.
Firma og Telefon = tekstfelter og vip & erhverv er checkboxe

Når brugeren har indgivet disse skal vi på en anden side kunne hive disse oplysning ud i samme format som de kom ind.
Her skal vi kunne ændre i det hele og til slut gemme rettelserne

Hvad siger du til det?

M.v.h. Bjarne
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 17:48 #8
Min hustru er syg derfor var jeg lige lidt væk - men jeg er her nu igen.
Og en detalje mere - det vi laver her er til en sportsklub - og jeg hjælper dem af glæde og til gavn for unge mennesker.

Bjarne
Avatar billede nythjem Nybegynder
21. juli 2004 - 18:21 #9
Selve eksemplet ligger her: http://www.nythjem.dk/test2/

Der er nogle filer du skal oprette:

#### udfyld.asp ####

<html>
<head>
<title>eksempel</title>

</head>


<body>

<form action="indsaet.asp" method="post">

Firma: <input type="text" name="firma" size="15" value=""><br>
Telefon: <input type="text" name="telefon" size="15" value=""><br><br>

<input type="checkbox" name="vip" value="ON"> Vip?<br>
<input type="checkbox" name="erhverv" value="ON"> Erhverv?
<br>
<br>
<br>
<input type="submit" value="Gem"></form>

</body>

</html>

#### indsaet.asp ####
<%
' 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("TEST.mdb")
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Insert into oplysning ("

strSQL = strSQL & "Firma, "
strSQL = strSQL & "Vip, "
strSQL = strSQL & "Erhverv, "
strSQL = strSQL & "Telefon) "

strSQL = strSQL & "values( "


strSQL = strSQL & "'" & replace(request.form("Firma"),"'","´") & "', "

if request.form("vip") = "ON" then
strSQL = strSQL & "True, "
else
strSQL = strSQL & "False, "
end if

if request.form("erhverv") = "ON" then
strSQL = strSQL & "True, "
else
strSQL = strSQL & "False, "
end if

strSQL = strSQL & "'" & replace(request.form("Telefon"),"'","´") & "')"

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


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

response.redirect ("rediger.asp")
%>

#### rediger.asp ####
<html>
<head>
<title>eksempel</title>

</head>


<body>

<%
Response.Buffer = True

Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("TEST.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Sql = "SELECT * FROM OPLYSNING"
Set Record =  Con.Execute(Sql)
%>

<% Do while Not Record.EOF %>

<form action="gem-aendring.asp?id=<%=Record("id")%>" method="post">

Firma: <input type="text" name="firma" size="15" value="<%=Record("firma")%>"><br>
Telefon: <input type="text" name="telefon" size="15" value="<%=Record("telefon")%>"><br><br>

<input type="checkbox" name="vip" <% If Record("vip") = True Then %>checked<%Else%><%End If%> value="ON"> Vip?<br>
<input type="checkbox" name="erhverv" <% If Record("erhverv") = True Then %>checked<%Else%><%End If%> value="ON"> Erhverv?
<br>
<br>

<input type="submit" value="Gem ændring"></form>

<%
Record.MoveNext
Loop
%>

<%
Con.Close
Set Con = Nothing
%>

</body>

</html>

#### gem-aendring ####
<%
' #### Databaseforbindelse ####
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("TEST.mdb")
Conn.Open DSN

' #### SQL sætning opbygges ####
strSQL = "Update OPLYSNING set "

if request("vip") = "ON" then
strSQL = strSQL & "vip      = True, "
else
strSQL = strSQL & "vip      = False, "
end if

if request("erhverv") = "ON" then
strSQL = strSQL & "erhverv        = True, "
else
strSQL = strSQL & "erhverv        = False, "
end if

strSQL = strSQL & "Firma= '" & request.form("Firma") & "', "
strSQL = strSQL & "Telefon= '" & request.form("Telefon") & "' "
strSQL = strSQL & " Where ID =  " & request.querystring("ID") & " "

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

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

response.redirect ("rediger.asp")
%>

*** databasen kan du downloade her..

http://www.nythjem.dk/test2/TEST.mdb


;-)

Nåh, jeg vil tilbage til arbejdet :)
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 18:28 #10
Jeg takker tusind gange for hjælpen.
Kan du have en god aften.

M.v.h. Bjarne
Avatar billede nythjem Nybegynder
21. juli 2004 - 18:34 #11
I lige måde, og held og lykke med projektet :)
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