Salut,
J'ai fait un petit shopping cart en ASP avec lequel j'ai un problème.
J'ai défini une fonction "Add to cart" (ci-dessous), elle vérifie si un article a déjà été ajouté au cart. Si oui, elle incrémente juste le nombre d'items dans l'array, sinon, elle crée une nouvelle entrée dans un array.
Si je rajoute plusieurs fois à la suite le même article, ça marche parfaitement.
Par contre, si j'ajoute un article, que j'en ajoute un deuxième, puis que je reviens au premier et en ajoute, là ça incrémente la qqté de l'article ET ça créée une nouvelle ligne dans l'array.
En clair, supposons que j'aie deux articles A et B et que je fais les manipulations suivantes :
- Ajout 2 * A
- Ajout 2 * A
- Ajout 2 * B
Mes array contiennent une ligne 4*A et une ligne 2*B
Par contre, si je fais ces manipulations :
- Ajout 2 * A
- Ajout 2 * B
- Ajout 2 * A
Mes array contiennent une ligne 4*A, une ligne 2*B, et une ligne 2*A
J'espère que c'est assez clair...
Voici la portion de fonction problèmatique (Je ne mets pas toute la fonction pour alléger):
Code :
alreadyIn = false
i = session("NbArt")
for j = 1 to i
if session("TabArt(" & j & ")") = request.Form("idArt") then
session("TabQuant(" & j & ")") = session("TabQuant(" & j & ")") + CInt(request.Form("qtyArt"))
alreadyIn = true
else
alreadyIn = false
end if
next
if alreadyIn = false then
k=i+1
redim TabArt_TEMP(k)
redim TabQuant_TEMP(k)
for j = 1 to i
TabArt_TEMP(j) = session("TabArt(" & j & ")")
TabQuant_TEMP(j) = session("TabQuant(" & j & ")")
next
TabArt_TEMP(k) = request.Form("idArt")
TabQuant_TEMP(k) = CInt(request.Form("qtyArt"))
session("NbArt") = session("NbArt") + 1
for j = 1 to k
session("TabArt(" & j & ")")=tabArt_temp(j)
session("TabQuant(" & j & ")")=TabQuant_TEMP(j)
next
end if
Vous voyez le problème?
Merci,
Simo