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

ASP

6 svar · 294 visningar · startad av LearningASP

Medlem sedan okt. 2001127 inlägg
Trådstart#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???

Medlem 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.

Medlem sedan okt. 2001127 inlägg
#3

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

Medlem 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
Medlem sedan okt. 2001127 inlägg
#5

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

Medlem 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?

Medlem sedan juni 200032 967 inlägg
#7

Du har gjort ett litet misstag.

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

set rs = connect.execute("sql")

Mvh,

267 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)