Creare funzione if else

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
Si, ma se vedi non è così. Prova ad inserire più prodotti, ed elimina uno di questi, vedrai che sopra appare Carrello, non Vai al carrello
 
Usa la seconda soluzione che ti avevo proposto:
Codice:
function SVUOTA() {
    $(".merce").each(function() {
        $(this).remove();
    });
    controllanumero(0);
    AZZERA();
}

HTML:
function controllanumero(totalequantita){
if(totalequantita<1){$("#cordX").html("Carrello");} //se la quantità totale è minore di 1, stampa "Carrello"
else{$("#cordX").html("Vai al carrello");} //altrimenti, stampa "Vai al carrello"
}

Oppure, in ELIMINA, usa
Codice:
controllanumero(0);
anzichè
Codice:
controllanumero(2);
 
Non va bene, o che sbaglio io:

Codice:
 function controllanumero(totalequantita) {
    if (totalequantita < 1) {
        $("#cordX").html("Carrello"); //se la quantità totale è minore di 1, stampa "Carrello"
    } else {
        $("#cordX").html("<a class=\"cordV\">Vai al carrello</a>"); //altrimenti, stampa "Vai al carrello"
    }
}
function SVUOTA() {
    $(".merce").each(function() {
        $(this).remove();
    });
    controllanumero(0);
    AZZERA();
}
$(document).ready(function() {
    AZZERA();
    var numero_totale = 0; //setta questa variabile
    $(".aggiungi").click(function() {
        controllanumero(numero_totale);
    });
});

function ELIMINA(id){
   controllanumero(0);
...
 
Hai ragione, sono io che mi sono espresso male: nella funzione ELIMINA dovresti determinare il numero di elementi presenti nel carrello (se non lo fai già) e passarlo come parametro per controllanumero
 
Cosi, ma non va bene il 3 è per prova, ma sono do più

function ELIMINA(id){
controllanumero(3);
 
Ok, ora funziona, ho messo così:
Codice:
 function ELIMINA(id){
   var quantita = parseInt($("#prodotto"+id+" .quantity").val());
   var valore = $("#prodotto"+id+" .subTotaleX").val();
   var valore = valore.toString(); 
   valore = valore.replace(",", ".");
   valore = parseFloat(valore);
   $("#prodotto"+id).remove();
   var totalequantita = parseInt($("#areacalcolo .totquantita").val());
   var totaleacquisto = $("#areacalcolo .totspesa").val();
   totaleacquisto = totaleacquisto.toString(); 
   totaleacquisto = totaleacquisto.replace(",", ".");
   totaleacquisto = parseFloat(totaleacquisto);
   totalequantita-=quantita;
   totaleacquisto-=valore;
   $("#areacalcolo .totquantita").val(totalequantita);
   $("#areacalcolo .totspesa").val(totaleacquisto);
   if(totalequantita==0){
    AZZERA();
    controllanumero(2);
   }else{
    $("#infoProdotto"+id+" .aggiunto").hide();
    $("#infoProdotto"+id+" .aggiungi").show();
    CARRELLO();
   }
  }

Senti, un'ultima cosa poi abbiamo finito, devo fare in modo che quando il carrello è vuoto, la parola Vuota il carrello deve sparire, ma riapparire quando c'è almeno un articolo.

Codice:
<a class="cord" onclick="SVUOTA()">Vuota il carrello</a>
…

function controllanumero(totalequantita) {
    if (totalequantita > 1) {
        $("#cordX").html("Carrello"); //se la quantità totale è minore di 1, stampa "Carrello"
    } else {
        $("#cordX").html("<a class=\"cordV\">Vai al carrello</a>"); //altrimenti, stampa "Vai al carrello"
    }
}
function SVUOTA() {
    $(".merce").each(function() {
        $(this).remove();
    });
    controllanumero(2);
    AZZERA();
}
$(document).ready(function() {
    AZZERA();
    var numero_totale = 0; 
    $(".aggiungi").click(function() {
        controllanumero(numero_totale);
    });
});
 
Ultima modifica:
RISOLTO

Ho messo $(".svuota").hide(); e $(".svuota").show(); nei posti giusti.
 

Discussioni simili