Salve, ho una pagina che mi visualizza un elenco di prodotti con
id - localitā - descrizione - foto1 - foto2 - foto3

e tramite un pulsante elimino tutta la scheda del prodotto + il link della foto presente nel database...l'unica cosa che non riesco a fare č quello di utilizzare lo stesso pulsante per eliminare fisicamente dal server (contemporamente) le tre foto abbinate da un id.

in altre discussioni ho trovato del codice per eliminare i file dal server, ma non so integrarli nella mia pagina...
al massimo si potrebbe fare un pulsante per ogni foto e cancellarle una alla volta...ma come si abbina un comando ad un pulsante?

posto il codice della mia pagina:

codice:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>

<%
// *** Restrict Access To Page: Grant or deny access to this page
var MM_authorizedUsers="";
var MM_authFailedURL="errore.asp";
var MM_grantAccess=false;
if (String(Session("MM_Username")) != "undefined") {
  if (true || (String(Session("MM_UserAuthorization"))=="") || (MM_authorizedUsers.indexOf(String(Session("MM_UserAuthorization"))) >=0)) {
    MM_grantAccess = true;
  }
}
if (!MM_grantAccess) {
  var MM_qsChar = "?";
  if (MM_authFailedURL.indexOf("?") >= 0) MM_qsChar = "&";
  var MM_referrer = Request.ServerVariables("URL");
  if (String(Request.QueryString()).length > 0) MM_referrer = MM_referrer + "?" + String(Request.QueryString());
  MM_authFailedURL = MM_authFailedURL + MM_qsChar + "accessdenied=" + Server.URLEncode(MM_referrer);
  Response.Redirect(MM_authFailedURL);
}
%>
<%
// *** Edit Operations: declare variables

// set the form action variable
var MM_editAction = Request.ServerVariables("SCRIPT_NAME");
if (Request.QueryString) {
  MM_editAction += "?" + Server.HTMLEncode(Request.QueryString);
}

// boolean to abort record edit
var MM_abortEdit = false;

// query string to execute
var MM_editQuery = "";
%>
<%
// *** Delete Record: declare variables

if (String(Request("MM_delete")) == "form1" &&
    String(Request("MM_recordId")) != "undefined") {

  var MM_editConnection = MM_miaConnessione2_STRING;
  var MM_editTable = "locali";
  var MM_editColumn = "ID";
  var MM_recordId = "" + Request.Form("MM_recordId") + "";
  var MM_editRedirectUrl = "";

  // append the query string to the redirect URL
  if (MM_editRedirectUrl && Request.QueryString && Request.QueryString.Count > 0) {
    MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + Request.QueryString;
  }
}
%>
<%
// *** Delete Record: construct a sql delete statement and execute it

if (String(Request("MM_delete")) != "undefined" &&
    String(Request("MM_recordId")) != "undefined") {

  // create the sql delete statement
  MM_editQuery = "delete from " + MM_editTable + " where " + MM_editColumn + " = " + MM_recordId;

  if (!MM_abortEdit) {
    // execute the delete
    var MM_editCmd = Server.CreateObject('ADODB.Command');
    MM_editCmd.ActiveConnection = MM_editConnection;
    MM_editCmd.CommandText = MM_editQuery;
    MM_editCmd.Execute();
    MM_editCmd.ActiveConnection.Close();

    if (MM_editRedirectUrl) {
      Response.Redirect(MM_editRedirectUrl);
    }
  }

}
%>
<%
var elenco = Server.CreateObject("ADODB.Recordset");
elenco.ActiveConnection = MM_miaConnessione2_STRING;
elenco.Source = "SELECT ID, localita, descrizione, foto FROM locali";
elenco.CursorType = 0;
elenco.CursorLocation = 2;
elenco.LockType = 1;
elenco.Open();
var elenco_numRows = 0;
%>
<%
var Repeat1__numRows = 10;
var Repeat1__index = 0;
elenco_numRows += Repeat1__numRows;
%>
<%
// *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

// set the record count
var elenco_total = elenco.RecordCount;

// set the number of rows displayed on this page
if (elenco_numRows < 0) {            // if repeat region set to all records
  elenco_numRows = elenco_total;
} else if (elenco_numRows == 0) {    // if no repeat regions
  elenco_numRows = 1;
}

// set the first and last displayed record
var elenco_first = 1;
var elenco_last  = elenco_first + elenco_numRows - 1;

// if we have the correct record count, check the other stats
if (elenco_total != -1) {
  elenco_numRows = Math.min(elenco_numRows, elenco_total);
  elenco_first   = Math.min(elenco_first, elenco_total);
  elenco_last    = Math.min(elenco_last, elenco_total);
}
%>
<%
// *** Recordset Stats: if we don't know the record count, manually count them

if (elenco_total == -1) {

  // count the total records by iterating through the recordset
  for (elenco_total=0; !elenco.EOF; elenco.MoveNext()) {
    elenco_total++;
  }

  // reset the cursor to the beginning
  if (elenco.CursorType > 0) {
    if (!elenco.BOF) elenco.MoveFirst();
  } else {
    elenco.Requery();
  }

  // set the number of rows displayed on this page
  if (elenco_numRows < 0 || elenco_numRows > elenco_total) {
    elenco_numRows = elenco_total;
  }

  // set the first and last displayed record
  elenco_last  = Math.min(elenco_first + elenco_numRows - 1, elenco_total);
  elenco_first = Math.min(elenco_first, elenco_total);
}
%>
<% var MM_paramName = ""; %>
<%
// *** Move To Record and Go To Record: declare variables

var MM_rs        = elenco;
var MM_rsCount   = elenco_total;
var MM_size      = elenco_numRows;
var MM_uniqueCol = "";
    MM_paramName = "";
var MM_offset = 0;
var MM_atTotal = false;
var MM_paramIsDefined = (MM_paramName != "" && String(Request(MM_paramName)) != "undefined");
%>
<%
// *** Move To Record: handle 'index' or 'offset' parameter

if (!MM_paramIsDefined && MM_rsCount != 0) {

  // use index parameter if defined, otherwise use offset parameter
  r = String(Request("index"));
  if (r == "undefined") r = String(Request("offset"));
  if (r && r != "undefined") MM_offset = parseInt(r);

  // if we have a record count, check if we are past the end of the recordset
  if (MM_rsCount != -1) {
    if (MM_offset >= MM_rsCount || MM_offset == -1) {  // past end or move last
      if ((MM_rsCount % MM_size) != 0) {  // last page not a full repeat region
        MM_offset = MM_rsCount - (MM_rsCount % MM_size);
      } else {
        MM_offset = MM_rsCount - MM_size;
      }
    }
  }

  // move the cursor to the selected record
  for (var i=0; !MM_rs.EOF && (i < MM_offset || MM_offset == -1); i++) {
    MM_rs.MoveNext();
  }
  if (MM_rs.EOF) MM_offset = i;  // set MM_offset to the last possible record
}
%>
<%
// *** Move To Record: if we dont know the record count, check the display range

if (MM_rsCount == -1) {

  // walk to the end of the display range for this page
  for (var i=MM_offset; !MM_rs.EOF && (MM_size < 0 || i < MM_offset + MM_size); i++) {
    MM_rs.MoveNext();
  }

  // if we walked off the end of the recordset, set MM_rsCount and MM_size
  if (MM_rs.EOF) {
    MM_rsCount = i;
    if (MM_size < 0 || MM_size > MM_rsCount) MM_size = MM_rsCount;
  }

  // if we walked off the end, set the offset based on page size
  if (MM_rs.EOF && !MM_paramIsDefined) {
    if ((MM_rsCount % MM_size) != 0) {  // last page not a full repeat region
      MM_offset = MM_rsCount - (MM_rsCount % MM_size);
    } else {
      MM_offset = MM_rsCount - MM_size;
    }
  }

  // reset the cursor to the beginning
  if (MM_rs.CursorType > 0) {
    if (!MM_rs.BOF) MM_rs.MoveFirst();
  } else {
    MM_rs.Requery();
  }

  // move the cursor to the selected record
  for (var i=0; !MM_rs.EOF && i < MM_offset; i++) {
    MM_rs.MoveNext();
  }
}
%>
<%
// *** Move To Record: update recordset stats

// set the first and last displayed record
elenco_first = MM_offset + 1;
elenco_last  = MM_offset + MM_size;
if (MM_rsCount != -1) {
  elenco_first = Math.min(elenco_first, MM_rsCount);
  elenco_last  = Math.min(elenco_last, MM_rsCount);
}

// set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount != -1 && MM_offset + MM_size >= MM_rsCount);
%>
<%
// *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

// create the list of parameters which should not be maintained
var MM_removeList = "&index=";
if (MM_paramName != "") MM_removeList += "&" + MM_paramName.toLowerCase() + "=";
var MM_keepURL="",MM_keepForm="",MM_keepBoth="",MM_keepNone="";

// add the URL parameters to the MM_keepURL string
for (var items=new Enumerator(Request.QueryString); !items.atEnd(); items.moveNext()) {
  var nextItem = "&" + items.item().toLowerCase() + "=";
  if (MM_removeList.indexOf(nextItem) == -1) {
    MM_keepURL += "&" + items.item() + "=" + Server.URLencode(Request.QueryString(items.item()));
  }
}

// add the Form variables to the MM_keepForm string
for (var items=new Enumerator(Request.Form); !items.atEnd(); items.moveNext()) {
  var nextItem = "&" + items.item().toLowerCase() + "=";
  if (MM_removeList.indexOf(nextItem) == -1) {
    MM_keepForm += "&" + items.item() + "=" + Server.URLencode(Request.Form(items.item()));
  }
}

// create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL + MM_keepForm;
if (MM_keepBoth.length > 0) MM_keepBoth = MM_keepBoth.substring(1);
if (MM_keepURL.length > 0)  MM_keepURL = MM_keepURL.substring(1);
if (MM_keepForm.length > 0) MM_keepForm = MM_keepForm.substring(1);
%>
<%
// *** Move To Record: set the strings for the first, last, next, and previous links

var MM_moveFirst="",MM_moveLast="",MM_moveNext="",MM_movePrev="";
var MM_keepMove = MM_keepBoth;  // keep both Form and URL parameters for moves
var MM_moveParam = "index";

// if the page has a repeated region, remove 'offset' from the maintained parameters
if (MM_size > 1) {
  MM_moveParam = "offset";
  if (MM_keepMove.length > 0) {
    params = MM_keepMove.split("&");
    MM_keepMove = "";
    for (var i=0; i < params.length; i++) {
      var nextItem = params[i].substring(0,params[i].indexOf("="));
      if (nextItem.toLowerCase() != MM_moveParam) {
        MM_keepMove += "&" + params[i];
      }
    }
    if (MM_keepMove.length > 0) MM_keepMove = MM_keepMove.substring(1);
  }
}

// set the strings for the move to links
if (MM_keepMove.length > 0) MM_keepMove += "&";
var urlStr = Request.ServerVariables("URL") + "?" + MM_keepMove + MM_moveParam + "=";
MM_moveFirst = urlStr + "0";
MM_moveLast  = urlStr + "-1";
MM_moveNext  = urlStr + (MM_offset + MM_size);
MM_movePrev  = urlStr + Math.max(MM_offset - MM_size,0);

%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>cancella prodotto</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Stile7 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #FF6600; }
.Stile12 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #333333; }
-->
</style>
</head>

<body>
<% while ((Repeat1__numRows-- != 0) && (!elenco.EOF)) { %>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr class="Stile7">
    <td width="10%">Codice</td>
    <td width="14%">Localit&agrave;</td>
    <td width="37%">Descrizione</td>
    <td width="24%">Foto</td>
    <td width="15%"></td>
  </tr>
  <tr valign="top" class="Stile12">
    <td class="Stile12"><%=(elenco.Fields.Item("ID").Value)%></td>
    <td class="Stile12"><%=(elenco.Fields.Item("localita").Value)%></td>
    <td class="Stile12"><%=(elenco.Fields.Item("descrizione").Value)%></td>
    <td class="Stile12">" target="_blank">[img]<%=(elenco.Fields.Item([/img]" border="0" width="102" height="96"></td>
    <td align="center"><form ACTION="<%=MM_editAction%>" METHOD="POST" name="form1">
        <input type="submit" name="Submit" value="Elimina">
        <input type="hidden" name="MM_delete" value="form1">
        <input type="hidden" name="MM_recordId" value="<%= elenco.Fields.Item("ID").Value %>">
        </form></td>
  </tr>
</table>
<%
  Repeat1__index++;
  elenco.MoveNext();
}
%>
<span class="Stile12">
<%
var TM_endCount=0;
for (i = 1; i<=elenco_total; i=i+MM_size){
  TM_endCount = i + MM_size - 1;
  if (TM_endCount > elenco_total) {
     TM_endCount = elenco_total;
  }
if (i != MM_offset + 1) {
Response.Write('<a href="' + urlStr + (i-1) + '">');
Response.Write(i + "-" + TM_endCount + "</a>");
}else{
Response.Write("" + i + "-" + TM_endCount + "");
}
if(TM_endCount != elenco_total) Response.Write(" ")
}
 %> </span>
</body>
</html>
<%
elenco.Close();
%>
vi ringrazio.