Nous sommes actuellement le 04 Juil 2026, 19:09

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 5 message(s) ] 
Auteur Message
MessagePublié: 26 Mars 2005, 17:25 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 25 Jan 2002, 06:05
Message(s) : 502
Localisation : Montréal
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

_________________
Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate
Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate
Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS


Dernière édition par Simo Bk le 27 Mars 2005, 04:00, édité 1 fois.

Haut
 Profil  
Répondre en citant  
MessagePublié: 26 Mars 2005, 23:59 
Hors-ligne
Petit nouveau
Petit nouveau
Avatar de l’utilisateur

Inscription : 05 Mars 2005, 08:54
Message(s) : 27
Localisation : Québec (Val-Bélair)
Tu dois faire un Exit For après ton AlreadyIn = true dans ta première boucle.Sinon, quand tu arrives à la deuxième transaction 2 * A, il passe une première fois dans la boucle, trouve le premier 2 * A et ajuste la quantité. Si on ne sort pas ici, il continue à regarder dans le cart et trouve 2 * B: AlreadyIn devient à False et c'est pourquoi il entre dans ta deuxième condition et crée un nouvel enregistrement 2 * A


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 27 Mars 2005, 03:59 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 25 Jan 2002, 06:05
Message(s) : 502
Localisation : Montréal
Je me sens un peu con là :)

Merci beaucoup Thunderbird, des fois, on a tendance à chercher les problèmes vraiment loin et on oublie d'appliquer le principe du KISS (Keep It Simple Stupid) :)

Salut,

Simo

_________________
Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate
Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate
Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 27 Mars 2005, 08:18 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
Moi je te conseillerais d'utiliser un objet dictionary pour faire ton shopping cart, ça serait beaucoup plus simple à gérer!

http://msdn.microsoft.com/library/defau ... ionary.asp

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 27 Mars 2005, 09:50 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 25 Jan 2002, 06:05
Message(s) : 502
Localisation : Montréal
Merci Procyon mais tu sais, c'est juste un petit exercice personnel... J'apprends ASP, et ça ne fait qu'environ un mois ou deux que je fais ça...

De toutes les façons, je préfére utiliser PHP, mais comme on dit, dans notre domaine, il faut toucher à tout n'est ce pas?

Donc, next step = PHP. Et là, je pousse le niveau très loin. ASP je veux juste les bases. PHP, je veux le maitriser à fond.

Donc, attendez vous à me voir souvent ici avec des questions sur PHP bientôt :)

Merci encore,

Simo

PS : Au fait, Thunderbird, le truc que tu m'as donné m'a montré ce qui ne marchait pas, mais il n'a pas résolu le problème étant donné qu'avec le EXIT FOR, ça bypassait le END IF, donc, tout le reste du code était considéré comme étant dans le IF. Bref, j'ai juste enlevé tout bonnement la condition else puisque de toute façon, à chaque passage, la variable est initialisée à False :)

_________________
Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate
Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate
Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 5 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site