webForumDet fria alternativet

använda checkbox för att radera i .....

6 svar · 278 visningar · startad av LearningASP

LearningASPMedlem sedan okt. 2001127 inlägg
#1

Jag har en sida där man får upp sina inlaggda annonser och kan markera sina poster med en checkbox, men nu till mitt problem...

Jag vill få upp annonser ur två databaser i denna lista och kunna välja med hjälp av checkboxar att radera de poster som man markerat

går detta att lösa?

eller måste jag ha en sida för varje databas???

------------------
Varje dag är en ny lektion ;)

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Jo, det går väl att lösa så att du för varje checkbox har ett hidden-fält som anger vilken databas du skall radera i.

------------------
essentitia preter non sans multiplicandum

LearningASPMedlem sedan okt. 2001127 inlägg
#3

har du lust att förklara lite mer hur man kan lösa detta?

------------------
Varje dag är en ny lektion ;)

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Om jag tänker efter lite så behövs det inga hidden-fält.

Om du döper alla checkboxar som hör ihop med den ena databasen (eller menar du tabell?) till ett namn och de andra till ett annat så går det bra

response.write "<form action='delete.asp' method='post'>"
set connect = server.createobject("adodb.connection")
connect.open "db1"
sql = "select * from db1tabell"
set rs = connect.execute("sql")
while not rs.eof
response.write "<input type='checkbox' value='" & rs("id") & "name='db1'>"
rs.movenext
wend
rs.close
connect.close

connect.open "db2"
sql = "select * from db2tabell"
set rs = connect.execute("sql")
while not rs.eof
response.write "<input type='checkbox' value='" & rs("id") & "name='db2'>"
rs.movenext
wend
rs.close
connect.close
response.write "</form>"

och sedan på delete.asp

connect.open "db1"
sql = "delete from db1tabell where id in (" & request.form("db1") & ")"
connect.execute sql,,128
connect.close

connect.open "db2"
sql = "delete from db2tabell where id in (" & request.form("db2") & ")"
connect.execute sql,,128
connect.close

------------------
essentitia preter non sans multiplicandum

LearningASPMedlem sedan okt. 2001127 inlägg
#5

jag menar ju naturligtvis ur 2 tabeller, e lite seg idag ;)

------------------
Varje dag är en ny lektion ;)

[Redigerat av LearningASP den 24 nov 2001]

LearningASPMedlem sedan okt. 2001127 inlägg
#6

Jag testade med denna

<%
	response.write "<form action='delete.asp' method='post'>"
	set connect = server.createobject("adodb.connection")
	connect.open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\crystal\databas\annonser.mdb" 
	SQL = "SELECT * FROM bilannons"
	set rs = connect.execute("sql")
	while not rs.eof
	response.write "<input type='checkbox' value='" & rs("id") & "' name='db1'>"
	rs.movenext
	wend
	rs.close
	connect.close
	connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\crystal\databas\annonser.mdb"
	SQL = "SELECT * FROM delar"
	set rs = connect.execute("sql")
	while not rs.eof
	response.write "<input type='checkbox' value='" & rs("id") & "' name='db2'>"
	rs.movenext
	wend
	rs.close
	connect.close
	response.write "</form>"
%>

men får följande fel

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Ogiltigt SQL-uttryck. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' eller 'UPDATE' förväntades. 

/porsche/delete/del_ann.asp, line 15

Vad är det för fel är jag blind?

------------------
Varje dag är en ny lektion ;)

@ndersMedlem sedan juni 200032 969 inlägg
#7

Du har gjort ett litet misstag.

Ta bort citationstecknen runt sql på följande rad:

set rs = connect.execute("sql")

Mvh,

------------------
All your base are belong to me.

146 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
141 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)