Avatar billede chris Nybegynder
21. oktober 2002 - 10:33 Der er 9 kommentarer og
2 løsninger

En masse checkboxes og kun 3 felter i db

Jeg har en form, hvor man bla. har 12 checkboxes. Brugerne skal vælge 3 stks. Hver checkbox har sin egen value.
Jeg har i min sql 3 felter (char), som venter på data fra de 3 checkboxes.

Nu er spørgsmålet, hvordan gør jeg lettest det?
Hvordan får jeg smidt de values, ned i de 3 felter i min tabel?
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 11:42 #1
Hvis checkbox'ne hedder det samme, så kan du loope igennem!

<%
for each val in Request.Form("myCheckboxes")
    strSQL = "Insert into myDB(MyCheckBoxValue) Values(" & val & ")"
    myConn.execute(strSQL)
Next
%>

Mvh,

Thomas REgin.
Avatar billede chris Nybegynder
21. oktober 2002 - 11:54 #2
Checkbox'ne hedder ikke det samme. De hedder feks:
<INPUT name=r1 type=checkbox value=Test1>
<INPUT name=r2 type=checkbox value=Test2>
<INPUT name=r3 type=checkbox value=Test3>  .... osv op til 12

De 3 felter jeg har i DB hedder :
Data1, Data2, Data3


De 3 felter i DB'en skal jo ha fortalt hvilke data der skal smides i dem.
Avatar billede the_bma_man Nybegynder
21. oktober 2002 - 11:57 #3
myR1 = request.form("r1")
if myR1  Test1 then
  '//her danner du sql-strengen
end if

Det gør du så for hver checkebox - evt. i et simpelt for-loop
Avatar billede the_bma_man Nybegynder
21. oktober 2002 - 11:57 #4
if myR1 = test1
skulle der stå
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 12:00 #5
<%
for i = 1 to 12
if Request.Form("test" & i  & "") <> "" then
    'Sql-strengen her.
End If
Next
%>

Mvh,

Thomas Regin.
Avatar billede the_bma_man Nybegynder
21. oktober 2002 - 12:07 #6
Som selvfølgelig skal være
Request.Form("r" & i & "")
i stedet for
Avatar billede chris Nybegynder
21. oktober 2002 - 12:14 #7
yes yes....den er god. Så har jeg nu samlet data...takker.
Men jeg skal jo så også ha tjekket om der er /allerede er data i Data1, Data2 og Data3, ellers ved den jo ikke hvor den skal smide de værdier fra checkbox'ne hen.
Avatar billede chris Nybegynder
21. oktober 2002 - 13:02 #8
Jeg opdaterer mit recordset med en rs.AddNew og rs.update
Jeg tænkte evt. på at gøre sådan her så:
<%
for i = 1 to 12
if Request.Form("test" & i  & "") <> "" then
Data" &y& "= Request.Form("r" & i  & "")
End If
Next
%>

Hvor jeg looper med Y. Men hvordan looper jeg nu lige derinde... jeg har lige førsogt forskellige måder at loope, men ka ik li få det til at virke
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 13:13 #9
<%
for i = 1 to 12
if Request.Form("test" & i & "") <> "" then
myString = myString & Request.Form("test" & i & "") & ","
End If
Next

'Nu indeholder myString en kommasepareret liste med 3 værdier.
mySplit = split(myString,",")

strSQL = "Update database set Data1 = " & mySplit(0) & ", Data2 = " & mySplit(1) & ", Data3 = " & mySplit(2) & " Where ID = Request.Querystring("ID")
myConn.execute(strSQL)
%>

Det er nok ikke den mest skalerbare løsning at gøre sådan, men hvis du er sikker på, at du kun får 3 felter med over, så kan det sagtens gå!

Mvh,

Thomas Regin
Avatar billede chris Nybegynder
21. oktober 2002 - 15:21 #10
Takker mange gange begge to.... det kører nu.
Avatar billede the_bma_man Nybegynder
21. oktober 2002 - 15:55 #11
Jamen, velbekomme.
Takker 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