Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Cancellare articoli da carrello

    Salve a tutti, mi sto dilettando nella realizzazione di un ecommerce...dopo tanto cercare finalmente ho trovato un ottimo script per il carrello.
    Questo script fa uso di un array per memorizzare i dati degli articoli: in particolare è di due colonne, colonna 1 = id degli articoli, colonna 2 = quantità degli articoli.
    Inserimento, modifica e svuota carrello funzionano perfettamente. Invece la cancellazione mi sta dando problemi.
    COME FUNZIONA? ho l'elenco degli articoli inseriti nel carrello e per ciascuno un checkbox di eliminazione. Se checko e faccio "aggiorna carrello" dovrebbe prelevare gli id checkati e fare gli opportuni spostamenti nell'array e il ridimensionamento.
    In realtà questo non succede correttamente: es. ne checko due e ne elimina tre...ne checko uno e ne elimina quattro...non capisco bene cosa faccia.
    Volete esaminare con me la sub???
    codice:
    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
    	response.write x
    	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
    Ho capito solo che il problema forse è qui:

    carrello(0,x)=carrello(0,ultimo)
    carrello(1,x)=carrello(1,ultimo)
    tre fiorini!!!

  2. #2
    nessuno sa aiutarmi?
    tre fiorini!!!

  3. #3
    tre fiorini!!!

  4. #4
    se ti stai dilettando cosa è tutta questa fretta?!
    se usi un vettore dovresti spostare tutti gli alementi di una posizione a partire da quello da eliminare e poi rimuovere l'ultimo elemento dell'array...

  5. #5
    Io non ho capito bene la struttura del carrello.

    tu parli di 2 array...ma carrello(x,y) è un array bidimensionale, una matrice...che è ben diverso. Su 2 array potrei immaginare che a stesso indice corrisponde idprodotto e quantità del prodotto, ma su una matrice, puoi ottenere lo stesso risultato solo quando X = Y... E' così che funziona?

    Dimmi meglio la struttura, cosa c'è nelle x e cosa nelle y?

  6. #6
    bè dilettarsi non significa rimanere a braccia conserte se si trova un intoppo...significa comunque desiderare di arrivare alla fine, no?

    come dici tu in effetti è la teoria giusta...ed è anche quella utilizzata nello script...ma c'è qualcosa che non va e non riesco a capire cosa, non esegue correttamente la cancellazione...
    tre fiorini!!!

  7. #7
    Originariamente inviato da KataKlism2002
    Io non ho capito bene la struttura del carrello.

    tu parli di 2 array...ma carrello(x,y) è un array bidimensionale, una matrice...che è ben diverso. Su 2 array potrei immaginare che a stesso indice corrisponde idprodotto e quantità del prodotto, ma su una matrice, puoi ottenere lo stesso risultato solo quando X = Y... E' così che funziona?

    Dimmi meglio la struttura, cosa c'è nelle x e cosa nelle y?
    non ho mai parlato di 2 array...

    "Questo script fa uso di un array per memorizzare i dati degli articoli: in particolare è di due colonne, colonna 1 = id degli articoli, colonna 2 = quantità degli articoli.
    "
    tre fiorini!!!

  8. #8
    codice:
    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)
    	for x = 0 to ubound(carrello,2)
    		if cint(carrello(0,x)) = cint(articoli(k)) then
    			ultimo = cint(ubound(carrello,2))
    			carrello(0,x) = carrello(0,ultimo)
    			carrello(1,x) = carrello(1,ultimo)
    			redim preserve carrello(1,ultimo-1)
    			exit for
    		end if
    	next
      next
    end sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.