Petit coup de pouce pour un log

Résolu
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour a tous

je suis encore la avec mon bon de commande que j essaye d améliorer et cette fois je cherche a savoir combien d articles sont présent dans mon panier

a travers cette boucle on voit le processus qui remplit le panier

for(var i in panierArray) {
    output += "<div class='row' style='border-style: ridge;  border-width: 1px; border-color: #8ebf42; background-color: #d9d9d9;margin-bottom:5px;'>"
    + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><button class='btn btn-danger effacer-item' data-nom='" + panierArray[i].nom + "'>X</button></div>"
      + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].nom + "</div>" 
      + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].prix.toFixed(0) + " euro</div>"
      + "<div class='form-inline col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><div class='input-group'><button class='btn btn-primary moins-item' data-nom='" + panierArray[i].nom + "'>-</button>"
      + "<input type='number' min='1' class='form-control item-quantite' style='width:55px !important' data-nom='" + panierArray[i].nom + "' value='" + panierArray[i].quantite + "'>"
      + "<button class='btn btn-primary plus-item' data-nom='" + panierArray[i].nom + "'>+</button></div></div>"
         //+ ' = ' 
      + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].total + " euros</div>" 
      +  "</div>";
      
    console.log(panierArray[i].quantite);
      
        }


donc ce qui m'intéresse est de savoir dans un premier temps est de savoir ce qui ce passe dans la variable

panierArray[i].quantite

je réalise.log donc une console.log sur cet élément qui devrait changer lorsque je vais ajouter des quantités
 console.log(panierArray[i].quantite);

mais cela reste a 0
pourtant dans mon panier cote client cela se remplit

3 réponses

  1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    voila j'ai par trouver comment calculer l ensemble de mon panier

    avec cette boucle j'ai vérifier avec la console log et cela me donne bien le résultat recherche a première vue

      var count =0;
      var countart=0;
      for(var i in panierArray) {
        output += "<div class='row' style='border-style: ridge;  border-width: 1px; border-color: #8ebf42; background-color: #d9d9d9;margin-bottom:5px;'>"
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].nom + "</div>" 
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>(" + panierArray[i].prix.toFixed(0) + ")</div>"
          + "<div class='form-inline col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><div class='input-group'><button class='btn btn-primary moins-item' data-nom='" + panierArray[i].nom + "'>-</button>"
          + "<input type='number' min='1' class='form-control item-quantite' style='width:55px !important' data-nom='" + panierArray[i].nom + "' value='" + panierArray[i].quantite + "'>"
          + "<button class='btn btn-primary plus-item' data-nom='" + panierArray[i].nom + "'>+</button></div></div>"
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><button class='btn btn-danger effacer-item' data-nom='" + panierArray[i].nom + "'>X</button></div>"
          //+ ' = ' 
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].total + " euros</div>" 
          +  "</div>";
           count++;
    countart += panierArray[i].quantite; 
    console.log(countart  );
            }


    Mais je n arrive pas afficher cette valeur sur mon formulaire en html

    pourtant j'ai ajouter ceci dans ma function du panier

    document.getElementById('countart').innerHTML = "<div class='row' style ='margin-bottom:5px;'>" + "<div class='col'></div><div class='col' ></div><div class='col'></div> <div class='col' style='text-align:center;background-color: #78b8df;'>nombre article total  </div><div class='col' style='text-align:center;background-color: #78b8df;'>" + countart + "  " +" euro</div></div>";


    dans cette fonction

    function afficherpanier(){
      var panierArray = MonPanier.listpanier();
      var output = "";
      var count =0;
      var countart=0;
      for(var i in panierArray) {
        output += "<div class='row' style='border-style: ridge;  border-width: 1px; border-color: #8ebf42; background-color: #d9d9d9;margin-bottom:5px;'>"
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].nom + "</div>" 
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>(" + panierArray[i].prix.toFixed(0) + ")</div>"
          + "<div class='form-inline col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><div class='input-group'><button class='btn btn-primary moins-item' data-nom='" + panierArray[i].nom + "'>-</button>"
          + "<input type='number' min='1' class='form-control item-quantite' style='width:55px !important' data-nom='" + panierArray[i].nom + "' value='" + panierArray[i].quantite + "'>"
          + "<button class='btn btn-primary plus-item' data-nom='" + panierArray[i].nom + "'>+</button></div></div>"
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><button class='btn btn-danger effacer-item' data-nom='" + panierArray[i].nom + "'>X</button></div>"
          //+ ' = ' 
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].total + " euros</div>" 
          +  "</div>";
           count++;
    countart += panierArray[i].quantite; 
    console.log(countart  );
            }
      $('.show-panier').html(output);
    
    
    
      if (Livraison == 3)
      {
         // % du prix total total correspondant au prix de la livraison
    const cases = document.querySelectorAll('input[name="choix_livraison"]');
    //const cases = document.querySelectorAll('input[name="ajout");
    for (const x of cases) {
    if (x.checked) {
    let nom_choix_livraison = x.dataset.nom;
    let prix_choix_livraison = x.value;
    //console.log(panierArray[i] );
    
    let prix_et_livraison = (( (MonPanier.totalpanier()*Poucentage_Livraison))) + Number(prix_choix_livraison) + Number(Forfait_Livraison ) ;
    console.log(countart  );
    //document.getElementById('amount').value = prix_et_livraison ;
    $('.total-panier').html(prix_et_livraison.toFixed(2));
    document.getElementById('nouveau_prix').innerHTML = "<div class='row' style ='margin-bottom:5px;'><div class='col'></div><div class='col'></div><div class='col'></div><div class='col'style ='background-color: #79ff94;text-align:center;'>Nouveau prix apres la remise</div><div class='col' style ='background-color: #79ff94;text-align:center;'>-" + (MonPanier.totalpanier()- (MonPanier.totalpanier()*Poucentage_Livraison_opposse)) + " euros</div> </div>";
    document.getElementById('remise').innerHTML = "<div class='row'><div class='col'></div><div class='col'></div><div class='col'></div><div class='col'style ='background-color: #ea51d2;text-align:center;'>Montant ristourne si disponible</div><div class='col' style ='background-color: #ea51d2;text-align:center;'>-" + MonPanier.totalpanier()*Poucentage_Livraison_opposse + " euros</div> </div>";
    document.getElementById('livraison-detail').innerHTML = "<div class='row' style ='margin-bottom:5px;'><div class='col'></div><div class='col'style='text-align:center;background-color: #78b8df;'>Livraison </div><div class='col ' style='text-align:center;background-color: #78b8df;'>Méthode</div><div class='col' style='text-align:center;background-color: #78b8df;'> (" + nom_choix_livraison + ") </div><div class='col' style='text-align:center;background-color: #78b8df;'> " + prix_choix_livraison +" euro(s)</div></div>";
    document.getElementById('frais-fixe').innerHTML = "<div class='row' style ='margin-bottom:5px;'>" + "<div class='col'></div><div class='col' ></div><div class='col'></div> <div class='col' style='text-align:center;background-color: #78b8df;'>Frais fixe </div><div class='col' style='text-align:center;background-color: #78b8df;'>" + Forfait_Livraison + "  " +" euro</div></div>";
    document.getElementById('countart').innerHTML = "<div class='row' style ='margin-bottom:5px;'>" + "<div class='col'></div><div class='col' ></div><div class='col'></div> <div class='col' style='text-align:center;background-color: #78b8df;'>Frais fixe </div><div class='col' style='text-align:center;background-color: #78b8df;'>" + countart + "  " +" euro</div></div>";
    
    break;
      }
      }
      }
      if (Livraison == 1)
      {
    $('.total-panier').html(((MonPanier.totalpanier()) + (MonPanier.totalpanier()/(100/Poucentage_Livraison))).toFixed(0));
    document.getElementById('livraison-detail').innerHTML = "Livraison incluse: " + Poucentage_Livraison +"% du prix total.";
     console.log("Poucentage_Livraison: " + Poucentage_Livraison );
      }
      if (Livraison == 2)
      {
    $('.total-panier').html((MonPanier.totalpanier() + Forfait_Livraison).toFixed(0));
    document.getElementById('livraison-detail').innerHTML = "Livraison incluse: " + Forfait_Livraison +" euros.";
      }
      if (Livraison == 0)
      {
    $('.total-panier').html(((MonPanier.totalpanier())).toFixed(0));
      }
    
      $('.total-panier-modal').html(MonPanier.totalpanier());
      $('.total-quantite').html(MonPanier.totalquantite());
      if ((Qte_Minimum == 1) && (Number.isInteger(MonPanier.totalquantite() / Qte_Minimum_Valeur) == false) && (MonPanier.totalquantite() != 0))
      {
    document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_bad;
      }
      else if ((Qte_Minimum == 1) && (Number.isInteger(MonPanier.totalquantite() / Qte_Minimum_Valeur) == true) && (MonPanier.totalquantite() != 0))
      {
    document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_ok;
      }
      else if (Qte_Minimum == 1)
      {
        document.getElementById('qte_minimum_report').innerHTML = txt_qte_minimum_defaut;  
      }
      else if (Qte_Minimum == 0)
      {
    document.getElementById('qte_minimum_report').innerHTML = "";
      }  
    }


    et dans le formulaire de mon html

    j ai ajouter ceci

    <i id="countart"></i>

    et

     var countart = document.getElementById("countart").innerHTML;
    0
  2. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    j'ai finalement trouve mais la quantité n est pas bonne je suis décalé

    si j aoute un seul produit
    le résultat est de 0 articles peu importe le nombre d article
    lorsque j ajoute un deuxième article le résultat du nombre d article est = a celui de la ligne précédente
    donc j 'ai un soucis dans ma boucle qui compte les quantités

    function afficherpanier(){
      var panierArray = MonPanier.listpanier();
      var output = "";
      var countart=0;
      var count=0;
        for(var i in panierArray) {
                 output += "<div class='row' style='border-style: ridge;  border-width: 1px; border-color: #8ebf42; background-color: #d9d9d9;margin-bottom:5px;'>"
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].nom + "</div>" 
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>(" + panierArray[i].prix.toFixed(0) + ")</div>"
          + "<div class='form-inline col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><div class='input-group'><button class='btn btn-primary moins-item' data-nom='" + panierArray[i].nom + "'>-</button>"
          + "<input type='number' min='1' class='form-control item-quantite' style='width:55px !important' data-nom='" + panierArray[i].nom + "' value='" + panierArray[i].quantite + "'>"
          + "<button class='btn btn-primary plus-item' data-nom='" + panierArray[i].nom + "'>+</button></div></div>"
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'><button class='btn btn-danger effacer-item' data-nom='" + panierArray[i].nom + "'>X</button></div>"
          //+ ' = ' 
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + panierArray[i].total + " euros</div>" 
          + "<div class='col' style='text-align: center;border-left: solid;padding-left: 5px;padding-right: 5px;'>" + countart + " articles</div>"
                +  "</div>";
            count++;
           
    countart += panierArray[i].quantite;  // somme des unités d'articles
    console.log(countart );
    console.log(panierArray[i].quantite );
    
    const total = panierArray.reduce((acc,val) => acc + val.quantite, 0);
    console.log(total );
    
    }
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      bonjour,
      peux-tu décrire ton soucis en utilisant le nom de la variable concernée?
      comme déjà suggéré, pour éviter toute confusion, peux-tu ajouter de texte dans les log?
      console.log("afficherpanier(), countart: " + countart );
      1
  3. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    j'ai enfin trouve
    0