08. januar 2005 - 23:30Der er
7 kommentarer og 1 løsning
Slette multiple records med en knap
Hej
jeg forsøger at lave et udtræk fra en database med hvor hver record har sin egen checkbox hvis value er recordens AutoID nr.
Jeg vil så gerne kunne slette det antal records hvor checkboxen er markeret.
Mit forsøg ser således ud:
<html> <head> <title>Slette Opslagstavle emner/title</title> <SCRIPT LANGUAGE="JavaScript"> function deleteMe(inAutoID){ if (confirm('Er du sikker på at du vil slette disse opslag?')){ location='opslag_delete.asp?Delete='+inAutoID; } } </SCRIPT> </head>
Jeg tror du er nød til at udføre POST på din form i stedet og så løbe igennem alle de felter der kommer med over - det er kun dem der er afkrydset der findes i Request.Form("DeleteRecord") collection, så det burde "bare" være et spørgsmål om at slette dem der er...
Jeg ville ændre formularen så den ser således ud:
<html> <head> <title>Slette Opslagstavle emner/title</title> <SCRIPT LANGUAGE="JavaScript"> function deleteMarked(){ if (confirm('Er du sikker på at du vil slette alle de markerede opslag?')){ slet.action='opslag_delete.asp; slet.submit() } } </SCRIPT> </head>
jeg har forsøgt det sm du forslår, og kan godt se hvor du vil hen, men for mig virker dte som om der mangler noget i slette scriptet for at den kan finde de markede elementer, jeg ved bare ikke helt hvordan jeg skal bære mig af
det tog mig lidt tid at finde rundt i hvad jeg egentlig forsøgte men nu virker det, koden kom til at se således ud: ---------------------- <% Set oDB = Server.CreateObject("ADODB.connection") oDB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/opslag.mdb")
if request.form("submit") <> "" then set lt = request.form("slet") for each ctl in lt 'Response.Write ctl & " " next oDB.Execute("DELETE FROM [Items] WHERE AutoID in ("<&");") oDB.Close end if %> <html> <head> <title>Slette Opslagstavle emner/title</title> </SCRIPT> </head>
Jeg kan se du fandt en variant (godt man også kan lidt SQL ;o)) - det er en fin måde at gøre det på, men så kan du godt fjerne for each... next konstruktion før
oDB.Execute("DELETE FROM [Items] WHERE AutoID in ("<&");")
hmm - Softspot, har du fået dine points? jeg synes ikke helt de 100 points jeg har udestående forsvinder. !!
Synes godt om
Ny brugerNybegynder
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.