Problema di bottoni

di il
4 risposte

Problema di bottoni

Ciao a tutti io 

Scusate se scriverò un papiro ma cerco di spiegare il meglio possibile.

Ieri ho creato la pagina del carrello del mio sito web tramite una chiamata Ajax prelevo i prodotti all’interno del carrello del mio database li stampo in formato json e attraverso javascript (jquery) con un ciclo for li stampo e li inserisco dentro un codice html.

Il problema è questo per ogni prodotto creo due pulsanti per aumentare o diminuire la quantità.

Quando nel carrello c’è un solo prodotto nessun problema ma quando i prodotti sono 2 e pigio una volta il pulsante del primo prodotto, vedo dalla console che il pulsante viene pigiato 2 volte 

Diversamente se pigio il pulsante del secondo prodotto che me lo pigia una sola volta

Praticamente va a scalare

Perché se ho tre prodotti il primo pulsante viene pigiato 3 volte il secondo 2 volte e il terzo 3 volte

Qualcuno sa come risolvere

Fatemi pure domande (lo so la mia grammatica è molto carente)

4 Risposte

  • Re: Problema di bottoni

    13/01/2023 - Paolo Pedrini ha scritto:


    Qualcuno sa come risolvere

    Direi che poter dare quantomeno una sbirciata al codice è fondamentale, altrimenti come è possibile capire qual è l'errore?

  • Re: Problema di bottoni

    Appena riesco ti mando la pagina con commenti

  • Re: Problema di bottoni

    $(document).ready(function(){
    
    $.ajax({
      type: "GET",
      url: "Get.php",
      data: "request=cartitem",
      dataType: "html",
      success:function(data){
        var json = JSON.parse(data);
        for(var i=0; I<json.lenght; I++){
           createline(json[i]);
        }
      error: function(){
        alert("Chiamata fallita!!!");
      }
    })
    })
    
    function createline(json){
        
       $(body).append(
            “<h2>”+json.name+”</h2>”+
            “<button type=“button” id=“less” value=“+json.id+”>-</button>”+
            “<span>”+json.quantity+”</span>”+
            “<button type=“button” id=“pluss ”  value=“+json.id+”>+</button>”
        )
        
    $(“#less”).click(function(){
         var id= $(this).attr(“value”);
     $.ajax({
      type: "POST",
      url: "post.php",
      data: "request= deletecart&id"+id,
      dataType: "html",
      success:function(data){
            Console.log(id)
        }
      error: function(){
        alert("Chiamata fallita!!!");
      }
    })
    
    $(“#pluss”).click(function(){
         var id= $(this).attr(“value”);
    $.ajax({
      type: "POST",
      url: "post.php",
      data: "request=add-to-cart&id"+id,
      dataType: "html",
      success:function(data){
            Console.log(id)
        }
      error: function(){
        alert("Chiamata fallita!!!");
      }
    })
    })
    
    
    
    })
  • Re: Problema di bottoni

    Manca il markup HTML della pagina, ad ogni modo vedo un discreto quantitativo di errori, alcuni formali altri sostanziali.

    13/01/2023 - Paolo Pedrini ha scritto:


    data: "request=cartitem",

    Non è il modo corretto, o almeno il più comodo per il passaggio dei parametri. Devi usare questa forma:

    data: {
      request: “cartitem”
    }

    13/01/2023 - Paolo Pedrini ha scritto:


    data: "request= deletecart&id"+id,

    Come detto sopra, questa forma è molto “error prone”, infatti manca un “=” dopo il parametro “id”. Usa la forma indicata in precedente.

    13/01/2023 - Paolo Pedrini ha scritto:


    for(var i=0; I<json.lenght; I++){

    Qui stai usando la variabile “i” indicandola in maiuscolo o in minuscolo: JavaScript è case sensitive!

    Inoltre, essendoci un ciclo, si presuppone che la funzione createline() - magari meglio createLine() - venga invocata più volte creando più blocchi di elementi, ma ciò comporta la presenza di più pulsanti all'interno della pagina con un ID ripetuto che invece dovrebbe essere univoco: in breve, non è corretto che vi siano pulsanti nella pagina con lo stesso ID, es. “less” o “pluss”.

    13/01/2023 - Paolo Pedrini ha scritto:


    “<button type=“button” id=“pluss ” value=“+json.id+”>+</button>”

    Come fai a concatenare stringhe usando le virgolette sia come delimitatore sia come carattere da rappresentare effettivamente?

    Ci sono troppi errori e il codice è troppo confusionale per farne un'analisi sensata: vedi gli esempi sul sito JQuery e correggi uno alla volta tutti i problemi nell'uso delle funzioni, stando attento all'ordine e alla forma, altrimenti il codice è illeggibile e ingestibile quindi risulta impossibile diagnosticare problemi.

Devi accedere o registrarti per scrivere nel forum
4 risposte