Avatar billede riishoj Nybegynder
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.
Avatar billede angam Nybegynder
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).
Avatar billede angam Nybegynder
17. januar 2003 - 14:31 #2
... der skal stå
document.testform.sysaction.value=recordid;

(istedet for document.testform.sysaction=recordid;)
Avatar billede riishoj Nybegynder
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>
Avatar billede angam Nybegynder
17. januar 2003 - 14:41 #4
10 minutter - så har jeg lavt det ind i dit script :-)
Avatar billede riishoj Nybegynder
17. januar 2003 - 14:44 #5
Herligt:)
Avatar billede angam Nybegynder
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>
Avatar billede angam Nybegynder
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)
Avatar billede angam Nybegynder
17. januar 2003 - 14:51 #8
stavefejl: respone --> response (4. sidste linie)
Avatar billede riishoj Nybegynder
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!
Avatar billede angam Nybegynder
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 ...
Avatar billede riishoj Nybegynder
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'>&nbsp;"& rs("reservation") &"<BR></font></td>"%>
                  <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("uge") &"<BR></font></td>"%>               
                  <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("dag") &"<BR></font></td>"%>             
                  <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("lektion") &"<BR></font></td>"%>
                  <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("initialer") &"<BR></font></td>"%>
                  <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& 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="&lt;--Tilbage" onClick="history.back();"></p>

   
</body>
</html>
Avatar billede angam Nybegynder
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>
Avatar billede angam Nybegynder
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
Avatar billede riishoj Nybegynder
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'>&nbsp;"& rs("reservation") &"<BR></font></td>"%>
                  <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("uge") &"<BR></font></td>"%>               
                  <% Response.Write"<td width='16%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("dag") &"<BR></font></td>"%>             
                  <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("lektion") &"<BR></font></td>"%>
                  <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& rs("initialer") &"<BR></font></td>"%>
                  <% Response.Write"<td width='17%' align='center'><font color='#FFFFFF' face=Verdana size='2'>&nbsp;"& 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="&lt;--Tilbage" onClick="history.back();"></p>

   
</body>
</html>
Avatar billede angam Nybegynder
17. januar 2003 - 16:19 #15
Min fejl:
<script type="text/javascript> mangler et gåseøje. Skal være:

<script type="text/javascript">
Avatar billede riishoj Nybegynder
17. januar 2003 - 16:35 #16
Så virker det. Mange tak for hjælpen :)
Avatar billede angam Nybegynder
17. januar 2003 - 16:36 #17
You're welcome :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester