bonjour a tous
je pensais ne plus devoir demander de l aide
Mais malheureusement mes connaissances en javascript sont encore trop limite
pourtant cela fait presque 2 jours que je cherche

J'ai donc mon fameux panier qui fonctionne
Mais dont j'essaye de l améliorer encore un peu

pour l'instant on peux ajouter les articles un a a un dans le panier
il n'y a pas un select pour choisir la quantité
donc si un utilisateur veux 30 fois le même article
il va devoir cliquer 30 fois

J'ai essaye de comprendre le code et j'ai déjà un peu modifié le code
avec un select dans le html

et une modification dans le javascript (déjà un bon début) Smiley biggrin
j'ai commence avec deux articles diffèrent pour faire un test
le premier select fonctionne bien et donc si je choisis 5
j'ai bien 5 articles dans ma console
par contre si l utilisateur change d'avis et qu 'il indique 5
le total du panier s'incrémente de 1
si il change encore d'avis et indique 3
le compteur s'incrémente de 1 et donc cela fait 7 car 5+1+1

donc j'ai un soucis au niveau de l incrémentation

d'avance un grand merci

voici la mini partie du html pour le select

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<div class="row mt-3">
      <div class="col-md-4">
        <p>Produit 02 (15.00 €)</p>
      </div>
      <div class="col-md-2">
        <select class="form-control" id="01">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
        </select>
      </div>
      <div class="col-md-6 text-end">
        <a style="cursor:pointer;" data-nom="Produit 02" data-prix="15.00" data-select="01" class="btn btn-primary ajouter-panier">Add to Cart</a>
      </div>
    </div>
 
 
 
    	    <div class="row mt-3">
      <div class="col-md-4">
        <p>Produit 02 (15.00 €)</p>
      </div>
      <div class="col-md-2">
        <select class="form-control" id="02">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
        </select>
      </div>
      <div class="col-md-6 text-end">
        <a style="cursor:pointer;" data-nom="Produit 02" data-prix="15.00" data-select="02" class="btn btn-primary ajouter-panier">Add to Cart</a>
      </div>
    </div>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
var Livraison = 3;
 
 
 
// ne pas modifier la suite sauf si vous désirez modifier le code
var MonPanier = (function() {
panier = [];
function Item(nom, prix, quantite) {
this.nom = nom;
this.prix = prix;
this.quantite = quantite;
}
 
function savepanier() {
sessionStorage.setItem('MonPanier', JSON.stringify(panier));
}
 
function loadpanier() {
panier = JSON.parse(sessionStorage.getItem('MonPanier'));
}
if (sessionStorage.getItem("MonPanier") != null) {
loadpanier();
}
 
var obj = {};
 
obj.ajouter_produit_dans_panier = function(nom, prix, quantite) {
for(var item in panier) {
  if(panier[item].nom === nom) {
panier[item].quantite ++;
console.log(panier[item].quantite);
savepanier();
return;
  }
}
var item = new Item(nom, prix, quantite);
panier.push(item);
savepanier();
}
 
obj.setquantiteForItem = function(nom, quantite) {
for(var i in panier) {
  if (panier[i].nom === nom) {
panier[i].quantite = quantite;
break;
  }
}
};
 
obj.enlever_produit_de_panier = function(nom) {
  for(var item in panier) {
if(panier[item].nom === nom) {
  panier[item].quantite --;
  if(panier[item].quantite === 0) {
panier.splice(item, 1);
  }
  break;
}
}
savepanier();
}
 
obj.enlever_produit_de_panier_tous = function(nom) {
for(var item in panier) {
  if(panier[item].nom === nom) {
panier.splice(item, 1);
break;
  }
}
savepanier();
}
 
obj.clearpanier = function() {
panier = [];
savepanier();
}
 
obj.totalquantite = function() {
var totalquantite = 0;
for(var item in panier) {
  totalquantite += panier[item].quantite;
  console.log(panier[item].quantite);
}
return totalquantite;
}
 
obj.totalpanier = function() {
var totalpanier = 0;
for(var item in panier) {
  totalpanier += panier[item].prix * panier[item].quantite;
  console.log(panier[item].quantite);
}
return Number(totalpanier.toFixed(2));
}
 
obj.listpanier = function() {
var panierCopy = [];
for(i in panier) {
  item = panier[i];
  itemCopy = {};
  for(p in item) {
itemCopy[p] = item[p];
  }
  itemCopy.total = Number(item.prix * item.quantite).toFixed(2);
  panierCopy.push(itemCopy)
}
return panierCopy;
}
 
return obj;
})();
 
$('.ajouter-panier').click(function(event) {
  event.preventDefault(); 
  var nom_option = "";
  var prix_option = 0;
  var option_checkbox = $(this).data('checkbox');
	if (option_checkbox != "") {
		var checkboxes = document.getElementsByClassName(option_checkbox);
		for(var i = 0; i < checkboxes.length; i++) {
		  if (checkboxes[i].checked == true) {
			  var nom_option = nom_option + " (" + $(checkboxes[i]).data('nom') +")";
			  var prix_option = prix_option + Number($(checkboxes[i]).data('prix'));
		  }
		}
	}  
 // if ($(this).data('select')) 
  //{
	//var nom = $(this).data('nom') + " (" + document.getElementById(""+$(this).data('select')+"").value + ")" + //nom_option;
  //}
 // else 
  var nom = $(this).data('nom');
  var prix = Number($(this).data('prix')) + prix_option;
  var test =document.getElementById(""+$(this).data('select')+"").value ;
  //MonPanier.ajouter_produit_dans_panier(nom, prix, 1);ancien code
  MonPanier.ajouter_produit_dans_panier(nom, prix, test);
  afficherpanier();
  console.log(test );
});