Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Cancellazione dei dati [Parte 2]

Gestire l'eliminazione di informazioni su database
Gestire l'eliminazione di informazioni su database
Link copiato negli appunti

Come accennato nella pagina precedente, ora verrà illustrato il codice asp, html e JavaScript necessario per la realizzazione della tabella appena vista graficamente.

<html>
<head>
<title>Cancella Dati Presenti</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="Javascript1.2">
<!--
function elimina()
{
return confirm("Sei è sicuri di voler eliminare il libro indicato ?");
}
-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<center>
<TABLE border="0" >
<TR bgcolor="#000000">
<TD ><center><strong><font
color="#FFFFFF">Id</font></strong></center></TD>
<TD ><center><strong><font
color="#FFFFFF">Titolo</font></strong></center></TD>
<TD ><center><strong><font
color="#FFFFFF">Autore</font></strong></center></TD>
<TD ><center><strong><font
color="#FFFFFF">Genere</font></strong></center></TD>
<TD ><center><strong><font
color="#FFFFFF"> </font></strong></center></TD>
</TR>
<%
dim strCode
strCode="innovatel"
dim intVolta
intVolta="0"

Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("libreria.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn
sql = "SELECT * FROM libri"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3

do while not(rs.eof)
if intVolta="1" then
intVolta="0"
intTesto="#00FF99"
intSfondo="#FFFF00"
else
intVolta="1"
intTesto="#FFFF99"
intSfondo="#33CCFF"
end if
%>
<TR bgcolor="<%=intSfondo%>">
<TD ><%=rs(0)%></TD>
<TD ><%=rs(1)%></TD>
<TD ><%=rs(2)%></TD>
<TD ><%=rs(3)%></TD>
<TD ><a href="cancella2.asp?Id=<%=rs(0)%>"
onClick="return elimina();">Cancella</a></TD>
</TR>
<%
rs.movenext
loop
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
</TABLE>
</center>
</body>
</html>

Come osservate, la parte di codice Asp che crea la tabella a partire dal database è sempre quella. L'unica variazione viene posta nella quinta colonna modificando di volta in volta la voce. In questo caso, è possibile osservare la scritta "Cancella". E' proprio su questo link che vi è una chiamata al JavaScript:

<a href="cancella2.asp?Id=<%=rs(0)%>" onClick="return
elimina();"
>Cancella</a>

Prima di spiegare il perché è stato introdotto questo JavaScript, bisogna spiegare ciò che svolge questo evento . L'evento onClick ha il compito di attivare la funzione elimina.

function elimina()
{
return confirm("Sei è sicuri di voler eliminare il libro indicato ?");
}

Dopo aver cliccato sulla scritta Cancella, questa funzione viene attivata prima di eseguire il collegamento ipertestuale posto nella sintassi di collegamento. La funzione appena descritta, fa comparire a video (ammesso che il browser sia compatibile al JavaScript) la seguente pop-up per avvisare che si sta èffettuando una cancellazione.

figura

Come potete osservare dall'immagine appena proposta, viene posta una domanda molto diretta (Il testo è personalizzabile intervenendo sulla funzione elimina). Se l'utente risponde Cancel all'evento onClick viene passato un valore false e quindi non si esegue il collegamento proposto. In caso contrario, se viene effettuata la scelta su Ok, viene reso all'evento onClick un valore True e quindi si effettua il collegamento necessario alla cancellazione.

In precedenza avevo annunciato che avrei spiegato il perché dell'uso di JavaScript. La risposta è molto semplice. Se non avessi messo questo controllo della cancellazione, si poteva correre il rischio di cancellare dati necessari in modo del tutto involontario.

Per evitare cancellazioni involontarie, si poteva anche fare una pagina asp di riepilogo con i dati del libro da cancellare. Questa soluzione è però sconveniente in quanto genera una nuova apertura del database e una nuova chiusura. Se il sito è molto trafficato, il database potrebbe non reggere tutte le richieste e crollare. Si ricorda a tal proposito che i database di tipo Microsoft Access, non hanno una buona resa se le richieste di dati contemporanee superano la soglia delle 30.

Prima di osservare come avviene la cancellazione nella pagina successiva, volevo porre l'attenzione sull'indirizzo di destinazione del link.

<a href="cancella2.asp?Id=<%=rs(0)%>" onClick="return elimina();">Cancella</a>

Come noterete, è possibile osservare anche in questo collegamento la presenza del passaggio del parametro Id che corrisponde alla corrispondente chiave primaria riferita al nostro libro.

Ora studieremo come rimuovere fisicamente un record dal database.

Ti consigliamo anche