Avatar billede dakar2004 Nybegynder
22. oktober 2008 - 07:15 Der er 5 kommentarer og
1 løsning

multisletning med checkboxe

Nu har jeg forsøgt at lave en multisletnings funktion på min website, men får følgende fejl når jeg køre slette siden:
---------------------------------------------------------
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler et komma. i forespørgselsudtrykket "mailblockid = 3, 4".
/filedb/admin_brugere_emailblock2.asp, line 16
---------------------------------------------------------
Her er koden for slette siden:
---------------------------------------------------------
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/filedb20.asp" -->
<%

if(Request.QueryString("sletbox") <> "") then sletdet__MMColParam = Request.QueryString("sletbox")

%>
<%

set sletdet = Server.CreateObject("ADODB.Command")
sletdet.ActiveConnection = MM_filedb20_STRING
sletdet.CommandText = "DELETE FROM emailblock  WHERE mailblockid = " + Replace(sletdet__MMColParam, "'", "''") + ""
sletdet.CommandType = 1
sletdet.CommandTimeout = 0
sletdet.Prepared = true
sletdet.Execute()

%>
-----------------------------------------------------------

Den forrige siden har jeg bare placeret mit recordset med en repeat funktion og en checkbox som indeholder det enkelte record's ID som value, det hele bliver så sendt til den side med fejl på ved en Form - Gate funktion også henter jeg som i nok kan se værdien fra checkboxen med en Request.QueryString funktion

men hvad er fejlen i denne kode, den påstår der mangler et komma ??
Avatar billede mitbrugernavn Praktikant
22. oktober 2008 - 10:36 #1
her et lille eksempel

<form name="form1" method="post" action="">
<input type="checkbox" name="id" value="1"><br>
<input type="checkbox" name="id" value="2"><br>
<input type="checkbox" name="id" value="3"><br>
<input type="checkbox" name="id" value="4"><br>
<input type="checkbox" name="id" value="5"><br>
<input type="submit" name="Submit" value="Submit">

</form>
<%
value_checkbox = request("id")
if value_checkbox <> "" then
arr = split(value_checkbox,",")
for a = 0 to ubound(arr)
response.write "slet id " & arr(a) & "<br>" 'dette bare en udskrivning
slet_id = arr(a)
'her sætter du så din slet ind (alle 7 linier selvfølgelig)
sletdet.CommandText = "DELETE FROM emailblock  WHERE mailblockid = " + slet_id + ""

next
end if
%>
Avatar billede mitbrugernavn Praktikant
22. oktober 2008 - 10:39 #2
denne linie skal du nok skrive således da det er i vbscript - går ud fra at mailblockid i din tabel er talfelt

sletdet.CommandText = "DELETE FROM emailblock  WHERE mailblockid = " & slet_id

hvis det er tekstfelt så:

sletdet.CommandText = "DELETE FROM emailblock  WHERE mailblockid = '" & slet_id & "'"
Avatar billede solle Nybegynder
22. oktober 2008 - 20:46 #3
if(value_checkbox<>"")then
  sletdet.CommandText = "DELETE FROM emailblock  WHERE mailblockid IN ("& value_checkbox &")"
end if

...
Så burde du slette dem alle i een SQL, i stedet for een for hver af de valgte!
Avatar billede dakar2004 Nybegynder
23. oktober 2008 - 12:41 #4
mange tak for dit svar mitbrugernavn, men som jeg ser den løsning du har lavet så skal jeg selv indtaste id som value i hver checkbox, det går jo ikke da id'en kommer fra databasen, da der hele tiden bliver lavet nye records, så skal jeg jo ind og redigere i siden hvergang eller misforstår jeg noget her...
Avatar billede mitbrugernavn Praktikant
23. oktober 2008 - 15:59 #5
nej da du henter det som du plejer

<form name="form1" method="post" action="">
her henter ud fra db

<input type="checkbox" name="id" value="<%=id fra db"><br>
og her slutter du så fra db

<input type="submit" name="Submit" value="Submit">

</form>
Avatar billede mitbrugernavn Praktikant
23. oktober 2008 - 16:01 #6
her et lille eksempel - bare med en løkke

<form name="form1" method="post" action="">
<%
for b = 1 to 10  'istedet henter du her fra db
%>
<input type="checkbox" name="id" value="<%=b%>"><br>
<%
next  'her slutter db
%>
<input type="submit" name="Submit" value="Submit">
</form>

og tak for point
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