Ho modificato la pagina carrello.asp secondo le mie esigenze. Il tutto funziona: aggiornare q.tà, svuotare carrello e aggiungere altri prodotti.

Ultima cosa che non riesco a modificare e rendere funzionante, e' la possibilità di eliminare un solo articolo dal carrello.

Ecco il codice che gestisce il tutto, ricordo che la collection di dati e' contenuta in una variabile di sessione quindi 1,4,65,23

Questa parte di codice, visualizza gli articoli ordinati:
codice:
<form ACTION="carrelloprova.asp" METHOD="post" onSubmit="return checkForm()">
  <table border="1">
    <tr bgcolor="#dddddd"> 
      <td>Elimina</td>
      <td>Film</td>
      <td align=center>Quantità</td>
      <td>Prezzo</td>
    </tr>
    <%
	'Apro la connessione verso il database usando ADO
	Set rsArticoli = Server.CreateObject("ADODB.RecordSet")
	StrConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("database\archivio.mdb")
	rsArticoli.open "select * from film where idfilm in(" & codici & ")",StrConn
	
	'where codice in(" & articoli & ")

	'Costruisco la tabella articoli con una casella di conferma acquisto

	'Assegno ad una variabile la collezione dei campi
	Set campi=rsArticoli.fields
	
	riga=0

   	for k=0 to ubound(carrello,2)
   		NewTd="<TD align=center><input type=checkbox name=elimina value=" & campi("idfilm") & ">"
    		NewTd=NewTd & "<TD width=150>" & campi("FILM") & "</TD>"
    		NewTd=NewTd & "<TD align=center><input type=text size=3 name=qta value=" & carrello(1,k) & "></TD>"
    		totale=totale+campi("PREZZO")*carrello(1,k)
    		'NewTd=NewTd & "<TD>" & formatCurrency(campi("PREZZO")*carrello(1,k)) & "</TD>"
			NewTd=NewTd & "<TD>" & campi("PREZZO")*carrello(1,k) & "</TD>"
    		NewRow="<TR>" & NewTd & "</TR>"
    		Response.write NewRow
    		rsArticoli.MoveNext
  	next
	
	response.write "<TR><TD colspan=3 align=right>Totale:<TD><font color=red>" & totale & "<font><TD></TR>"
  	
	RsArticoli.Close
	Set RsArticoli=nothing
%> 
  </table>
  

  <input type=submit name="action" value="Aggiorna carrello">
  <input type=submit onclick="return confirm('Sei sicuro di voler eliminare il contenuto del carrello ?')" name="action" value="Svuota carrello">
  

  

  <input type=button value="Conferma ordine" onclick="location.href='conferma.asp'">
</form>
Ora qui controllo l'azione dell'utente
codice:
<% 
	'ANALISI DELLE RICHIESTE
	
	'Imposto una variabile bool che tiene traccia della presenza
	'di elementi nell'array
	if isArray(session("carrello"))=0 then
		dim carrello()
		presenti=0
	else
		carrello=session("carrello")
		presenti=1
	end if
	
	'Verifico l'azione scelta dall'utente
	if request("action")="Aggiorna carrello" then
		
		'Verifico se l'utente ha eliminato degli articoli o variato alcune quantità
		cancellaArt=request("elimina").count
		if cancellaArt>0 then
			cancellaArticoli
		else
			aggiornaDati
		end if
	end if
...
qui di seguito inserisco la routine VB che cancella l'articolo dal carrello.
codice:
<script runat=server language=vbscript>
...
sub cancellaArticoli()

 'Questa routine elimina un articolo dal carrello
 'con una tecnica di shifting degli elementi
 
  articoli=split(request("elimina"),",")
  
  presenti=true
  
  for k=0 to ubound(articoli)
  
	x=0
	
	do 
	
	if cint(carrello(0,x))=cint(articoli(k)) then
  		
  		'Verifico se si tratta dell'ultimo elemento
  	
  		if x<ubound(carrello,2) then
  			ultimo=ubound(carrello,2)
  			carrello(0,x)=carrello(0,ultimo)
  			carrello(1,x)=carrello(1,ultimo)
  		end if
  			if ubound(carrello,2)=0 then
  				erase carrello
  				presenti=false
  			else
  				redim preserve carrello(1,ubound(carrello,2)-1)
  			end if
		exit do
  	else
  		x=x+1  		
  	end if
  	
  	loop
  	  	
  next
  
end sub
se seleziono un checkbox di un articolo e poi aggiorno il carrello, non lo elimina!!! :master: