Avatar billede rille101 Nybegynder
11. september 2005 - 17:05 Der er 9 kommentarer og
1 løsning

Insert form med checkbox

Selve Min insert form består af to sider:
Side 1:
<form name="form1" method="post" action="nytEmne.asp">
            <table width="75%"  border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td class="style12"><div align="left">Materiale:</div></td>
                <td height="30"><div align="left">
                  <select name="Materiale" id="Materiale">
                      <%
if data = True then
  while not rsNyVare2.eof
    if cstr(rsNyVare2("Materiale")) = cstr(request.QueryString("Materiale")) then
    %>
                      <option value="<%=rsNyVare2("Materiale")%>" selected><%=rsNyVare2("Materiale")%></option>
                      <%
    end if
    rsNyVare2.movenext
  wend
  rsNyVare2.moveFirst
  while not rsNyVare2.eof
    if rsNyVare2("Materiale") <> request.QueryString("Materiale") then
    %>
                      <option value="<%=rsNyVare2("Materiale")%>"><%=rsNyVare2("Materiale")%></option>
                      <%
    end if
    rsNyVare2.movenext
  wend
else
  while not rsNyVare2.eof
    %>
                      <option value="<%=rsNyVare2("Materiale")%>"><%=rsNyVare2("Materiale")%></option>
                      <%
    rsNyVare2.movenext
  Wend
end if
%>
                                </select>
                </div></td>
              </tr>
              <tr>
                <td width="28%" class="style12"><div align="left">Varegruppe:</div></td>
                <td width="72%" height="30"><div align="left">
  <select name="Varegruppe" id="Varegruppe">
      <%
if data = True then
  while not rsNyVare.eof
    if cstr(rsNyVare("Varegruppe")) = cstr(request.QueryString("Varegruppe")) then
    %>
      <option value="<%=rsNyVare("Varegruppe")%>"><%=rsNyVare("Varegruppe")%></option>
      <%
    end if
    rsNyVare.movenext
  wend
  rsNyVare.moveFirst
  while not rsNyVare.eof
    if rsNyVare("Varegruppe") <> request.QueryString("Varegruppe") then
    %>
      <option value="<%=rsNyVare("Varegruppe")%>"><%=rsNyVare("Varegruppe")%></option>
      <%
    end if
    rsNyVare.movenext
  wend
else
  while not rsNyVare.eof
    %>
      <option value="<%=rsNyVare("Varegruppe")%>"><%=rsNyVare("Varegruppe")%></option>
      <%
    rsNyVare.movenext
  Wend
end if
%>
  </select>
  <input type="submit" id="send" name="send" value="Opret ny varegruppe">
                </div></td>
              </tr>
              <tr>
                <td class="style12"><div align="left">Titel:</div></td>
                <td height="30"><div align="left">
                  <input name="Varenavn" type="text" id="Varenavn" <%if data then response.write(" Value=""" & request.querystring("Varenavn") & """") else %>Value="" >
                </div></td>
              </tr>
              <tr>
                <td valign="top" class="style12"><div align="left">Beskrivelse:</div></td>
                <td height="30"><div align="left">
                    <textarea name="Varebeskrivelse" cols="30" rows="6" id="Varebeskrivelse"><%if data then%><%=request.querystring("Varebeskrivelse")%><%end if%>
</textarea>
                    </textarea>
                </div></td>
              </tr>
              <tr>
                <td valign="middle" class="style12"><div align="left">Lagervare:</div></td>
                <td height="30"><div align="left">
                  <input name="Lagervare" type="checkbox" id="Lagervare" <%if data then response.write(" Value=""" & request.querystring("Lagervare") & """") else %> checked Value="-1" >
                </div></td>
              </tr>
              <tr>
                <td class="style12"><div align="left">Pris:</div></td>
                <td height="30"><div align="left">
                  <input name="pris" type="text" id="pris" size="6" <%if data then response.write(" Value=""" & request.querystring("pris") & """") else %>Value="" >
                    <span class="style11">,-</span></div></td>
              </tr>
              <tr>
                <td><div align="left"></div></td>
                <td><div align="left">
                  <input type="submit" name="Submit" value="Videre >>">
                </div></td>
              </tr>
            </table>
           
            </form>

Side 2:
                  <%
if request.form("send")="Opret ny varegruppe" then
%>
                  <br>
                  <b>Indtast ny varegruppe:</b> <br>
                  <br>
                  <form action="insert_nyt_emne.asp" method="post" name="form1" target="_self"><input type="submit" value="Opret">
                  <input type="reset" name="Reset" value="Fortryd" onMouseUp="MM_goToURL('parent','nyvare.asp');return document.MM_returnValue">
                  <input name="Varegruppe" type="text" id="Varegruppe">
                  <input type="hidden" name="Varenavn" value="<%=request.Form("Varenavn")%>">
                  <input type="hidden" name="Varebeskrivelse" value="<%=request.Form("Varebeskrivelse")%>">
                  <input type="hidden" name="Pris" value="<%=request.Form("Pris")%>">
                  <input type="hidden" name="Lagervare" value="<%=request.Form("Lagervare")%>"></form>
                  <%
else%>
                  <%
Set Conn = Server.CreateObject("ADODB.Connection")
Set RSnyvare = Server.CreateObject("ADODB.Recordset")
MyConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/db/birle.mdb")
Conn.Open MyConnection
RSnyvare.open "varer", Conn, 3,3,2
RSnyvare.addnew
  RSnyvare("Materiale") =request.form("Materiale")
  RSnyvare("Varegruppe") =request.Form("Varegruppe")
  RSnyvare("Varenavn") =request.Form("Varenavn")
  RSnyvare("Varebeskrivelse") =request.Form("Varebeskrivelse")
  RSnyvare("pris") =request.Form("pris")
  RSnyvare("lagervare") =request.form("lagervare")
  RSnyvare.update
  Dim ID
ID = RSnyvare("vareID")

  response.redirect("nyvare2.asp")
%>
                  <%
end if
%>

Mit problem er at jeg ikke formår at sende tilstanden fra min checkbox med over i databasen.

Checkboxen hedder "Lagervare"
Checked skulle gerne være = -1 og unchecked = 0.

Jeg får en type mismatch fejl.
Hvordan sender jeg checkbox data rundt mellem sider?
Avatar billede cpufan Juniormester
11. september 2005 - 19:23 #1
hvilken datatype er kolonnen hvor chechbox værdien skal sættes ind?
Avatar billede rille101 Nybegynder
11. september 2005 - 19:30 #2
I Access står datatypen til Ja/Nej
Når jeg trækker data ud via Dreamweaver skriver den -1 eller 0
Avatar billede cpufan Juniormester
11. september 2005 - 19:32 #3
nej det skal være 1 og 0
Avatar billede cpufan Juniormester
11. september 2005 - 19:33 #4
-1 er en null værdi, 1 er ja, og 0 er nej
Avatar billede rille101 Nybegynder
11. september 2005 - 19:36 #5
hmmm. Men når jeg åbner db'en i access er der flueben i feltet, og dreamweaver betegner den som -1. Skal jeg skrive checked value = 1?
Avatar billede cpufan Juniormester
11. september 2005 - 19:39 #6
jeps, men uden checked,- med mindre den skal starte med at være markeret
Avatar billede rille101 Nybegynder
11. september 2005 - 19:53 #7
Hvis jeg skriver "1" i checked value, så bliver varen korrekt indsat, når der er flueben i checkboxen.
Hvis boxen er tom så får jeg denne fejl:
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

Samme fejl får jeg, hvis jeg undlader at skrive noget som helst i checked value.
Avatar billede cpufan Juniormester
11. september 2005 - 19:57 #8
ja den er lidt dum,
inden du sætter i db, skal du chekke om værdien er sat, hvis ikke den er sat, bliver der ikke overfør noget i den overhovedt, og du selv sætte værdien til 0

noget ala

if request("lagervare")="" then
lagervare = 0
else
lagervare = 1
end if

og brug så din variabel - lagervare som værdi til at sætte i db'en
Avatar billede rille101 Nybegynder
11. september 2005 - 20:05 #9
Yes!
Det var det der skulle til.

Min insert statement kom så til at se sådan ud.

Set Conn = Server.CreateObject("ADODB.Connection")
Set RSnyvare = Server.CreateObject("ADODB.Recordset")
MyConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/db/birle.mdb")
Conn.Open MyConnection
RSnyvare.open "varer", Conn, 3,3,2
RSnyvare.addnew
  RSnyvare("Materiale") =request.form("Materiale")
  RSnyvare("Varegruppe") =request.Form("Varegruppe")
  RSnyvare("Varenavn") =request.Form("Varenavn")
  RSnyvare("Varebeskrivelse") =request.Form("Varebeskrivelse")
  RSnyvare("pris") =request.Form("pris")

  if request.Form("Lagervare")= "" then
  RSnyvare("Lagervare") = 0
  else
  RSnyvare("Lagervare") = 1
  end if

  RSnyvare.update
  Dim ID
ID = RSnyvare("vareID")

Tak for hjælpen!
Avatar billede cpufan Juniormester
11. september 2005 - 20:09 #10
selv tak
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