17. januar 2003 - 14:24
Der er
16 kommentarer og 1 løsning
Advarsel før sletning
Jeg har et script som sletter records i en db i forbindelse med et bookingsystem. Findes der et eller andet, evt. i form af en alert boks, som advarer eller spørger om man nu er helt sikker på, at man vil slette. Det vil være helt fint, hvis man så skal trykke på en ok knap.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
17. januar 2003 - 14:30
#1
Du kan gøre sådan: <form name=testform method=post action=""> <input type=hidden name=sysaction value=0> <a href="java script:confirmDelete(42);">Slet</a> <script language=javascript> function confirmDelete(recordid) { if(confirm('Skal denne record slettes?')) { document.testform.sysaction=recordid; document.testform.submit(); } } </form> </script> Ovenstående er ret simpelt - men princippet er at SysAction er <> 0 hvis brugeren har sagt OK til at slette recorden, ellers indeholder det id'et der skal slettes (her 42).
17. januar 2003 - 14:31
#2
... der skal stå document.testform.sysaction.value=recordid; (istedet for document.testform.sysaction=recordid;)
17. januar 2003 - 14:38
#3
Simplicitet er en god ting, men jeg er ikke helt klar over, hvordan jeg bruger dit script. Jeg sletterikke i db'en ved hjælp af id ( se nednestående), men det kan selvfølgelig ordnes. Hvordan hentes id'et ind i javascriptet? <%Response.buffer = true%> <html> <head> <title>Slet opgaven</title> </head> <body> <% ' Databaseforbindelse ---------- uge = request.querystring("uge") dag = request.querystring("dag") lektion = request.querystring("lektion") reservation = request.querystring("reservation") ' SQL sletter record strSQL = "DELETE * FROM reserver WHERE reservation = '" & reservation & "' AND uge = '" & uge & "' AND dag = '" & dag & "' AND lektion = '" & lektion & "';" Conn.Execute(strSQL) ' Luk databaseforbindelse Conn.Close Set Conn = Nothing %> <h1>Opgaven er slettet!</h1> </body> </html>
17. januar 2003 - 14:41
#4
10 minutter - så har jeg lavt det ind i dit script :-)
17. januar 2003 - 14:44
#5
Herligt:)
17. januar 2003 - 14:48
#6
<%Response.buffer = true%> <html> <head> <title>Slet opgaven</title> <script language=javascript> function confirmDelete() { if(confirm('Skal denne record slettes?')) { document.testform.sysaction.value='delete'; document.testform.submit(); } } </script> </head> <body> <form name=testform method=post action=""> <input type=hidden name=sysaction value=""> Tryk <a href="java script:confirmDelete();">SLET</a> for at slette denne opgave. </form> <% ' Databaseforbindelse ' ---------- ' uge = request.querystring("uge") ' dag = request.querystring("dag") ' lektion = request.querystring("lektion") ' reservation = request.querystring("reservation") if(Request("sysaction")) = "delete" Then ' SQL sletter record strSQL = "DELETE * FROM reserver WHERE reservation = '" & reservation & "' AND uge = '" & uge & "' AND dag = '" & dag & "' AND lektion = '" & lektion & "';" Conn.Execute(strSQL) ' Luk databaseforbindelse Conn.Close Set Conn = Nothing Respone.Write("<h1>Opgaven er slettet!</h1>") End If %> </body> </html>
17. januar 2003 - 14:50
#7
.. du manglede godtnok en connection (Conn) et sted - jeg går ud fra at du allerede har en connection til databasen aktiv :-) (jeg måtte kommentere alt db-relateret ud mens jeg testede)
17. januar 2003 - 14:51
#8
stavefejl: respone --> response (4. sidste linie)
17. januar 2003 - 14:52
#9
Jeg prøver lige at teste dit forslag. Det varer nok lige et stykke tid, da jeg er i gang med noget andet lige nu. Vender tilbage!
17. januar 2003 - 14:55
#10
Ok. Læg lige mærke til at dine request-variable (uge, dag etc) ikke bliver givet videre af (java)scriptet. Der skal nok tilføjes et par hidden-felter mere ...
17. januar 2003 - 15:18
#11
Har lidt problemer, da min "slet-knap" befinder sig på en anden side (vis_reservation.asp). Den ser sådan ud: <% Response.Buffer = True %> <html> <head> <title>Vis reservation</title> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <% lektion = Request.Querystring("lektion") dag = Request.Querystring("dag") uge = Request.Querystring("uge") reservation = Request.Querystring("reservation") ' Databaseforbindelse ConnString = "DSN=mindatabase" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open ConnString ' SQL forespørgsel strSQL = "SELECT * FROM reserver WHERE reservation = '" & reservation & "' AND uge = '" & uge & "' AND dag = '" & dag & "' AND lektion = '" & lektion & "';" Set rs = Conn.Execute(strSQL) if rs.eof then Response.Write"<p align='center'><font size=6>Der er ingen opgaver</font></p>" Response.Write"<p align='center'><A HREF='skema.asp'>Tilbage til skemaet</A></p>" else %> <body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" background="background7.gif"> <table border="0" width="100%"> <tr> <td width="39%"><img border="0" src="kalender.gif"></td> <td width="61%"><font face="Verdana" size="5"><b>Reservation</b></font></td> </tr> </table> <br> <br> <div align="center"> <center> <table border="1" width="80%" bgcolor="#669999" cellspacing="0" cellpadding="0" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#000000"> <tr> <td width="100%"> <table border="0" width="100%" cellspacing="4" cellpadding="4"> <tr> <td width="16%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Reservation</font></b></td> <td width="16%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Uge</font></b></td> <td width="16%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Dag</font></b></td> <td width="17%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Lektion</font></b></td> <td width="17%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Initialer</font></b></td> <td width="17%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Klasse</font></b></td> </tr> <tr> <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("reservation") &"<BR></font></td>"%> <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("uge") &"<BR></font></td>"%> <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("dag") &"<BR></font></td>"%> <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("lektion") &"<BR></font></td>"%> <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("initialer") &"<BR></font></td>"%> <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("klasse") &"<BR></font></td>"%> </tr> </table> </td> </tr> </table> </center> </div> <br> <table border="0" width="100%"> <tr> <td width="100%"> <p align="center"><A HREF='slet.asp?reservation=<%=reservation%>&lektion=<%=lektion%>&dag=<%=dag%>&uge=<%=uge%>'>Slet opgave</A></td> </tr> </table> <%end if%> <% ' Rydder op efter os Conn.Close Set Conn = Nothing %> <p align="center"><input type="button" value="<--Tilbage" onClick="history.back();"></p> </body> </html>
17. januar 2003 - 15:39
#12
Ok - javascriptet skal flyttes over i det andet script, så slet.asp kun bliver kaldt hvis brugeren trykker 'OK'. Jeg har ikke haft mulighed for at teste dette selv, så eventuelle syntax-fejl må du lige prøve at rette (ellers post linien her :-) Fidusen er at linket i det kaldende asp-script først kalder en javascript-funktion, der spørger brugeren om det er OK at slette scriptet. Hvis det er det, redirigeres til slet.asp med dine parametre. Du skal lave en lille ændring i det kaldende script: [nederste kode lige efter slutningen af </div> - linie 73 så vidt jeg kan se] <br> <script type="text/javascript> function confirmDelete() { if(confirm('Skal denne record slettes?')) { document.location.href='slet.asp?reservation=<%=reservation%>&lektion=<%=lektion%>&dag=<%=dag%>&uge=<%=uge%>'; } } </script> <table border="0" width="100%"> <tr> <td width="100%"> <p align="center"><A HREF='java script:confirmDelete();'>Slet opgave</A></td> </tr> </table> <%end if%> [fortsæt koden her] slet.asp bliver også meget nemmere nu (faktisk som din originale slet.asp) <%Response.buffer = true%> <html> <head> <title>Slet opgaven</title> </head> <body> <% ' Databaseforbindelse ' ---------- uge = request.querystring("uge") dag = request.querystring("dag") lektion = request.querystring("lektion") reservation = request.querystring("reservation") ' SQL sletter record strSQL = "DELETE * FROM reserver WHERE reservation = '" & reservation & "' AND uge = '" & uge & "' AND dag = '" & dag & "' AND lektion = '" & lektion & "';" Conn.Execute(strSQL) ' Luk databaseforbindelse Conn.Close Set Conn = Nothing %> </body> </html>
17. januar 2003 - 15:41
#13
"... der spørger brugeren om det er OK at slette scriptet" skal naturligvis være "... slette opgaven" - ingen slettede scripts her :-D
17. januar 2003 - 16:17
#14
Der er en fejl, men jeg kan ikke finde den. Den nederste del af scriptet (efter linje 73) bliver slet ikke vist, heller ikke tilbageknappen. <% Response.Buffer = True %> <html> <head> <title>Vis reservation</title> <LINK REL="StyleSheet" HREF="style.css" TYPE="text/css"> </head> <% lektion = Request.Querystring("lektion") dag = Request.Querystring("dag") uge = Request.Querystring("uge") reservation = Request.Querystring("reservation") ' Databaseforbindelse ConnString = "DSN=riishojwebsoftdkdsn" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open ConnString ' SQL forespørgsel strSQL = "SELECT * FROM reserver WHERE reservation = '" & reservation & "' AND uge = '" & uge & "' AND dag = '" & dag & "' AND lektion = '" & lektion & "';" Set rs = Conn.Execute(strSQL) if rs.eof then Response.Write"<p align='center'><font size=6>Der er ingen opgaver</font></p>" Response.Write"<p align='center'><A HREF='skema.asp'>Tilbage til skemaet</A></p>" else %> <body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" background="background7.gif"> <table border="0" width="100%"> <tr> <td width="39%"><img border="0" src="kalender.gif"></td> <td width="61%"><font face="Verdana" size="5"><b>Reservation</b></font></td> </tr> </table> <br> <br> <div align="center"> <center> <table border="1" width="80%" bgcolor="#669999" cellspacing="0" cellpadding="0" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#000000"> <tr> <td width="100%"> <table border="0" width="100%" cellspacing="4" cellpadding="4"> <tr> <td width="16%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Reservation</font></b></td> <td width="16%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Uge</font></b></td> <td width="16%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Dag</font></b></td> <td width="17%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Lektion</font></b></td> <td width="17%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Initialer</font></b></td> <td width="17%" align="center"><b><font color="#FFFFCC" face="Verdana" size="2">Klasse</font></b></td> </tr> <tr> <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("reservation") &"<BR></font></td>"%> <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("uge") &"<BR></font></td>"%> <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("dag") &"<BR></font></td>"%> <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("lektion") &"<BR></font></td>"%> <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("initialer") &"<BR></font></td>"%> <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'> "& rs("klasse") &"<BR></font></td>"%> </tr> </table> </td> </tr> </table> </center> </div> <br> <table border="0" width="100%"> <tr> <td width="100%"> <script type="text/javascript> function confirmDelete() { if(confirm('Skal denne record slettes?')) { document.location.href='slet.asp?reservation=<%=reservation%>&lektion=<%=lektion%>&dag=<%=dag%>&uge=<%=uge%>'; } } </script> <table border="0" width="100%"> <tr> <td width="100%"> <p align="center"><A HREF='java script:confirmDelete();'>Slet opgave</A></td> </tr> </table> <%end if%> <% ' Rydder op efter os Conn.Close Set Conn = Nothing %> <p align="center"><input type="button" value="<--Tilbage" onClick="history.back();"></p> </body> </html>
17. januar 2003 - 16:19
#15
Min fejl: <script type="text/javascript> mangler et gåseøje. Skal være: <script type="text/javascript">
17. januar 2003 - 16:35
#16
Så virker det. Mange tak for hjælpen :)
17. januar 2003 - 16:36
#17
You're welcome :-)
Kurser inden for grundlæggende programmering