Avatar billede jmc Nybegynder
26. september 2002 - 15:39 Der er 10 kommentarer og
1 løsning

opdate/insert mange checkboks ?

Hvordan opdatere eller indsætter man values i en database når der er mange checkbokse?

udskriver
<table border="1" cellpadding="2" cellspacing="0">
            <tr>
             
              <td><input name="soegeord" type="checkbox" id="soegeord2" value="checkbox">
                løft</td>
             
              <td><input name="soegeord" type="checkbox" id="soegeord2" value="checkbox">
                foroverbøjet</td>
             
              <td><input name="soegeord" type="checkbox" id="soegeord2" value="checkbox">
                bordhøjde</td>
             
            </tr>
          </table>


<%
Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>

Jeg har regnet ud at jeg ikke kan komme uden om at håndkode, men hvad er processen og hvordan bliver checkbokse sendt via post?
Avatar billede loss Nybegynder
26. september 2002 - 15:42 #1
den value du sætter dine checlboxe til, er den den værdi der bliver sendt videre, hvis boxen er checket..
Avatar billede loss Nybegynder
26. september 2002 - 15:42 #2
og du skal osse give dem forskellige navne, eller kan den jo ikke kende forskel..
Avatar billede loss Nybegynder
26. september 2002 - 15:46 #3
fx så den her

<table border="1" cellpadding="2" cellspacing="0">
            <tr>
             
              <td><input name="soegeord" type="checkbox" id="soegeord2" value="checkbox">
                løft</td>
             
              <td><input name="soegeord" type="checkbox" id="soegeord2" value="checkbox">
                foroverbøjet</td>
             
              <td><input name="soegeord" type="checkbox" id="soegeord2" value="checkbox">
                bordhøjde</td>
             
            </tr>
          </table>

Og så henter du dem bare ned med en request.form. og opdatere databasen
Avatar billede loss Nybegynder
26. september 2002 - 15:47 #4
ups, copy paste fejl der :).. her er det

fx så den her

<table border="1" cellpadding="2" cellspacing="0">
            <tr>
             
              <td><input name="soegeord1" type="checkbox" id="soegeord2" value="true">
                løft</td>
             
              <td><input name="soegeord2" type="checkbox" id="soegeord2" value="true">
                foroverbøjet</td>
             
              <td><input name="soegeord3" type="checkbox" id="soegeord2" value="true">
                bordhøjde</td>
             
            </tr>
          </table>

Og så henter du dem bare ned med en request.form. og opdatere databasen
Avatar billede jmc Nybegynder
26. september 2002 - 16:57 #5
Jeg tror det bliver mere kompliceret at forklare så derfor sætter jeg flere points af:

checkboxe der bliver udskrevet af recordset hurlumhej1 skal opdatere tabel relation_produkt_hurlumhej1 osv.

hurlumhej1 ser sådan ud:
id:
hurlumhej1:

relation_produkt_hurlumhej1 ser sådan ud:
id:
produkt_id:
hurlumhej1:

jeg har en database med 5*mellemtabeller

relation_produkt_hurlumhej1
relation_produkt_lumpuher2
relation_produkt_jajada3
osv.

Kan du genneskue dette?
Avatar billede loss Nybegynder
26. september 2002 - 17:17 #6
Udskriver du Checkboxe i en løkker?, er det der er problemet ?
Avatar billede jmc Nybegynder
27. september 2002 - 07:37 #7
yep
Avatar billede loss Nybegynder
27. september 2002 - 15:57 #8
Ok, så er problemet jo at dit opdaterings script ikke kan kende forskel på dine checkboxe..

Så inkluder i løkken en variabel
DO until bla

<td><input name="Checkbox<%=var%>" type="checkbox" id="soegeord2" value="true">
                løft</td>

var = var + 1
rs.movenext
loop

det var en måde.. eller osse have en variabel i tabellen for hvert søgeord, som kan tilskrives som Name i de tilhørende checkboxe.
Avatar billede jmc Nybegynder
06. november 2002 - 22:10 #9
tak
Avatar billede loss Nybegynder
07. november 2002 - 09:31 #10
velbekommen... har du fået det til at virke ?
Avatar billede jmc Nybegynder
07. november 2002 - 11:53 #11
yeps
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