webForumDet fria alternativet

DELETE poster som är kryssade i checkbox...

ASP

11 svar · 296 visningar · startad av JAreMANNEN

Medlem sedan aug. 20002 272 inlägg
Frågan#1

Jag är på G idag.... :)

Har ett forum med en adminsida som visar alla poster i forumet med en checkbox framför.

Alla poster som jag kryssar i checkboxen för vill jag ta bort..

Mitt problem är att jag inte vet hur man ska ta emot alla värdena från checkboxarna och sedan få in i SQL-strängen...

Tacksam för all hjälp jag kan få!!

------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post

Medlem sedan dec. 19998 577 inlägg
#2

Lättast är om du ger varje checkbox samma namn, och ger dom värdet av det id som inlägget har...

Sedan tar du emot såhär:

deletes = Split(Request.Form("checks"),", ")
strSQL = "Delete from tabell where "

For i = 0 To Ubound(deletes)
strSQL = strSQL & "id = "&deletes(i)&" OR "
Next
strSQL = Left(strSQL, Len(strSQL)-3)

databas.execute(strSQL)

Kanske lite syntaxfel... men principen borde funka... :)

Mvh, Vide

------------------
Jourhavande @e SweQuake.com

[Redigerat av Vide den 27 feb 2001]

Medlem sedan mars 20002 836 inlägg
#3

Testa:

strDel = Request.Form("del")
arrDel = Split(strDel,",")
For i = 0 to UBound(arrDel)
	strSQLdel = "DELETE * FROM DIN_TABELL WHERE DITT_FALT_ID = " & arrDel(i)
	objConn.Execute(strSQLdel)
Next

ngt liknande ...
cya,

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

[Redigerat av PatrikB den 27 feb 2001]

Medlem sedan dec. 19996 721 inlägg
#4

Vides variant är funkis. Här är tre till (bara för att visa olika kodningetekniker som man kanske inte tänker på så ofta)


strSQL = "Delete from tabell where "
For each intID in Request.Form("checks")
strSQL = strSQL & "id = "& intID &" OR "
Next
strSQL = Left(strSQL, Len(strSQL)-3)

databas.execute(strSQL)

eller

deletes = Split(Request.Form("checks"),", ")
strSQL = "Delete from tabell where ID=" & join(deletes," OR ID=")

databas.execute(strSQL)

eller

strSQL = "Delete from tabell where ID IN (" & Request.Form("checks") & ")"

databas.execute(strSQL)
Medlem sedan aug. 20002 272 inlägg
#5

Beslutsångest... :)

Vilken är den bästa att använda sig utav då??

Använder mig detta just nu..

   strSQL = "DELETE * FROM post WHERE "
   For each intID in Request.Form("fld_checkbox")
   strSQL = strSQL & "id = "& intID &" OR "
   Next
   strSQL = Left(strSQL, Len(strSQL)-3)
   objConn.Execute(strSQL)

Funkar bra... :e

------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post

[Redigerat av JAreMANNEN den 27 feb 2001]

Medlem sedan okt. 20005 273 inlägg
#6

Varför byta när den funkar bra :e

------------------
icaaq [ajsack]
när ni vill träffa
andra

---i suck ---

Medlem sedan aug. 20002 272 inlägg
#7

Tänkte mest på vilket exempel som går snabbast att utföra eftersom det är till en stor site med mkt besökare jag ska ha detta till..

Man får koda lite annorlunda mot när man sitter och labbar.. :)

------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post

Medlem sedan feb. 200245 inlägg
#8

Olika namn

Men om man har stigande namn på checkboxarna...

typ checkbox1,checkbox2,checkbox3 etc

Hur gör man då?

Medlem sedan dec. 200012 464 inlägg
#9
strSQL = "Delete from tabell where "
For i = 1 to 3
strSQL  = strSQL & "id = "& request.form("checkbox" & i) & " OR "
Next
strSQL = Left(strSQL, Len(strSQL)-3)

databas.execute strSQL,,128
Medlem sedan feb. 200245 inlägg
#10

okajj

Men om jag inte vet hur många checkboxar det är da?

loopa fram dem alltså!

Medlem sedan okt. 20005 273 inlägg
#11
intAntalCheckbox = 0
For each objItem in Request.Form
		If Left(objItem, 8) = "checkbox" Then
			intAntalCheckbox = intAntalChecbox -- 1
		End If				
	Next

strSQL = "Delete from tabell where "
For i = 1 to intAntalCheckBox
strSQL  = strSQL & "id = "& request.form("checkbox" & i) & " OR "
Next
strSQL = Left(strSQL, Len(strSQL)-3)

databas.execute strSQL,,128

Har ej testat denna men.........

Medlem sedan dec. 200012 464 inlägg
#12

I så fall så kan du ha ett fält av typ hidden där du lägger in hur många checkboxar det finns när du skapar formuläret

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)