Panier d'achat flash

Messages postés
11
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
3 août 2011
- - Dernière réponse : BBFUNK01
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
- 3 août 2011 à 13:21
Bonjour
Ayant besoin d'un panier d'achat pour un site web, j'ai enfin trouver ce qu'il me fallait. Malheureusement, j'ai un problème pour afficher les article directement dans mon array :

stop();
// on initialise les champs texte définissant les prix 
// de chaque produits
prix_poule_txt.text =  "20 euros";
prix_pc_txt.text = "200 euros";
prix_gelDouche_txt.text = "5 euros";
//On crée notre fameux tableau
_global.tabPanier = new Array();
// on définit des variables globales
_global.nombreProduits = 0;
_global.coutTotal = 0;
_global.message = "Vous avez 
 "+nombreProduits+" 
 produits dans votre panier

";
// Le champs texte qui informe dun nombre de produit et du cout total
messageNombre_txt.html  = true;
messageNombre_txt.autoSize =  true;
messageNombre_txt.htmlText = message;
//******************************
// function : ajouterPanier
ajouterPanier = function (quelProduit, quelleValeur) {
        // on ajoute le produit définit par quelProduit
        tabPanier.push(quelProduit);
        // on affiche en interne le contenu du tableau
        trace(tabPanier);
        // on incrémente la variable nombreProduits
        nombreProduits++;
        // on ajoute la valeur défninie par quelleValeur à la
        // variable coutTotal
        coutTotal += quelleValeur;
        // on redéfinit la variable globale message
        // afin de préparer l'affichage des nouvelles données
        _global.message = "Vous avez 
 "+nombreProduits+" 
 produits dans votre panier";
        _global.message + = "
 pour un total de 
"+coutTotal+"
 euros

";
        messageNombre_txt.htmlText =  message;
};
//******************************
// function : enleverPanier

enleverPanier = function (quelProduit, quelleValeur) {

// interdire la suppression de produit

// si le nombreProduits est <= 0 et coutTotal <=0

if (nombreProduits>=0 && coutTotal>=0) {

 // on parcourt le tableau pour supprimer l'éléement correspondant

 for (i=0; i<tabPanier.length; i++) {

  // si l'élément est trouvé

  if (tabPanier[i] == quelProduit) {

   // on le supprime

   tabPanier.splice(i, 1);

   // on diminue le nombre de produits

   nombreProduits--;

   // on diminue la valeur du panier par la variable quelleValeur

   coutTotal -= quelleValeur;

   // on arrête la boulce

   break;

  }

 }

 // on redéfinit la variable globale message

 // afin de préparer l'affichage des nouvelles données

 _global.message = "Vous avez 
 "+nombreProduits+" 
 produits dans votre panier";

 _global.message + = "
 pour un total de 
"+coutTotal+"
 euros

";

 messageNombre_txt.htmlText = message;

 // on affiche en interne le contenu du tableau

 trace(tabPanier);

}

};
// Actions sur les boutons
//*****************************
// POULE
ajoutPoule.onPress = function() {
        ajouterPanier("poule", 20);
};
supprimePoule.onPress = function() {
        enleverPanier("poule", 20);
};
//*****************************
// PC
ajoutPC.onPress = function() {
        ajouterPanier("PC", 200);
};
supprimePC.onPress = function() {
        enleverPanier("PC", 200);
};
//*****************************
// GEL DOUCHE
ajoutGelDouce.onPress = function() {
        ajouterPanier("Gel Douche", 5);
};
supprimeGelDouche.onPress = function() {
        enleverPanier("Gel Douche", 5);
};

Ce que je cherche à faire, c'est d'afficher les produits dans mon tableau.
Si quelqu'un pouvait m'aider.
Merci d'avance,
Amicalement,
Fabien493
Afficher la suite 

11 réponses

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
248
0
Merci
Bonjour,

Pour comprendre ce qui ne va pas, il faut qu'on lise ton code, peux tu expliquer ton problème plus clairement (tu auras plus de réponses je pense).
Commenter la réponse de cs_Julien39
Messages postés
11
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
3 août 2011
0
Merci
Bonjour Julien,

En fait, quand je clique sur ajouter un "geldouche" ou/et "Pc" cela m'affiche bien le montant dans le tableau et calcul aussi le montant global.
Ne connaissant pas l'AS par-cœur, je ne sais pas trop comment faire pour récupérer la variable "quelProduit" pour l'ajouter au tableau.
Je pense que ça doit être super simple mais je sèche.

Voila je ne sais pas si je suis assez clair, veuillez m'en excuser si cela n'est pas le cas. Pour information, ce script n'est pas de moi, j'ai pas mal cherché sur d'autres site et à part des paniers d'achat en PHP y'a pas grand chose en Flash.

Merci pour vos réponses,
amicalement,
Fabien493
Commenter la réponse de fabien493
Messages postés
468
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
0
Merci
Bonjour,
tout d'abord, j'ai eu un petit sourire en lisant "Ne connaissant pas l'As par coeur", autant dire "étant débutant".

Concernant ton morceaux de code, il est relativement basique et il laisse transparaitre un certain nombre de chose inutile.
(par exemple la var _global.nombreProduits ).
car _global.nombreProduits est toujours egale à _global.tabPanier.length

D'autre part je t'invite utiliser une méthodologie que je suis en train de developper.
C'est a dire qu'au lieu de separer les informations d'un seul et meme éléments (avec les variables, quelobjet, quellevaleur)autant attribuer des propriétés à cet objet.

pour illustrer:
var produit1:Object;
produit1.name="poule";
produit1.prix=20;


De cette facon il te suffit de stocker cet objet dans un array pour conserver toutes le données associées a leur objet.

Enfin pour ton probleme , de remplissage de tableau, d'après ton script, il n'y a aucun pb a ce niveau, ton tableau se rempli avec:
tabPanier.push(quelProduit);


la ou tu péche c'est que tu le rempli avec un string ("poule"), au lieu de le faire avec un displayobject

Cordialement
Commenter la réponse de aerolyte
Messages postés
11
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
3 août 2011
0
Merci
Salut aerolyte,

Je te remercie toi et julien pour vos réponses.
Au final, j'ai préférer tout reprendre depuis le début avec mon propre code. Comme je l'ai signaler ce code n'était pas de moi, alors je préfère développer le mien et comprendre concrètement ce que je fais !

Je me suis aperçu que je n'avais pas expliquer le "c'est pour quoi faire", alors voila, j'ai un site avec un menu de restaurant.
le but est de faire un panier d'achat ou à coté par-exemple de "poulet" il y as écrit + et - et quand on clique sur +, ça affiche dans une fenêtre au dessus appelé "panier" une liste : produit, quantités, et prix(sommes), quand on appuis sur - ça supprime le produit.exactement la même chose que sur Alloresto...

Donc voila ou j'en suis, j'ai fais pas mal de test mais me reste quelques problèmes...

dans la page, j'ai 3 zone de texte dynamique appelé messageProduit,messageQuant, et messagePrix :


stop();
// je définie mes variables :
var Lproduit = "0";
var Lquant = "0";
var Lprix = "0";

// Affichage des variables dans mes textes dynamiques :
messageProduit.htmlText = Lproduit;
messageQuant.htmlText = Lquant;
messagePrix.htmlText = Lprix;



// function : ajouterPanier :
ajouterPanier = function (produit, prix) {
// on ajoute le produit définit par quelProduit
LProduit = produit;
// on incrémente la quantités :
        Lquant++;
        // on mulitiplie le prix par la quantité :
        Lprix = (prix * Lquant);
        // et on affiche tout les résultats :
messageProduit.htmlText = ListeProduit;
messageQuant.htmlText = Lquant;
messagePrix.htmlText = Lprix;

};

// bouton poulet :
ajoutPoulet.onPress = function() {
ajouterPanier("Poulet", 20);
};
//bouton bière :
ajout.onPress = function() {
ajouterPanier("Super Bière", 50);
};


Voila ou j'en suis, je n'ai pas encore attaqué les suppression des produits, j'y vais petit à petit.

Les problèmes :

1 - je n'arrive pas à mettre l'un en dessous de l'autre les produits (normal puisque ce n'ai qu'une variable me direz-vous) j'ai essayé avec un array, même problème...

2 - le prix total ne prends en compte que l'un des 2 produits essayer c'est assez drôle.

Et effectivement aerolyte je suis débutant !

merci pour vôtres aides.

Amicalement,
Fabien493
Commenter la réponse de fabien493
Messages postés
11
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
3 août 2011
0
Merci
P.S : on peux pas éditer nos propres message ?

petite rectification :

// function : ajouterPanier : ce n'ai pas ListeProduit mais LProduit
messageProduit.htmlText = LProduit;

// bouton bière : j'ai oublié le nom du bouton "ajoutBière" :
ajoutBière.onPress = function() {
ajouterPanier("Super Bière", 50);
};


je crois que c'est tout.

Merci
fabien493
Commenter la réponse de fabien493
Messages postés
468
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
0
Merci
Bonjour,
Honnetement passe a l'as3, surtout si tu commence à faire de l'applicatif.
c'est normal que tu n'obtiens pas ce que tu veux:


c'est quoi ces variables, il faut les typer.
d'apres ce que tu as écrit ce sont des strings (texte); or c'est pas vraimment ce que tu veux.
var Lproduit = "0";
var Lquant = "0";
var Lprix = "0";

ajouterPanier=function (produit, prix){
//ici tu affectes une nouvelle chaine de caractères (string) à ta variable Lproduit.
LProduit=produit;

// on incrémente la quantités : ca a un pas d'interet, autant utiliser un vector ou un array.
Lquant++;

// on mulitiplie le prix par la quantité : la c'est carrémment faux
imagine que tu achete 2 produits A à 20€, puis 1 produit B a 60€.
d'apres ta formule Lprix a la fin ferais 180€ !!!
Lprix = (prix * Lquant);

ceci pour 3 raisons:
1> mauvais typage de ta variable;
2> tu ne cumulle pas les totaux. achaque fois tu réaffecte une nouvelle valeur au lieu de les cumuler
Lprix =Lprix+(prix);
3> ta quantité (Lquant) devrait etre utiliser pour indiquer le nombre d'ajout du meme produit et non pour la somme des produits


meme pricipe que pour le prix tu affecte un nouvelle variable au lieu de completer ton texte
aussi ta variable est mal nommée ListeProduit >Lproduit
messageProduit.htmlText = ListeProduit;

messageQuant.htmlText = Lquant;
messagePrix.htmlText = Lprix;
};

c'est juste un petit correctif car deja a la base la logique de fonctionnement est loin d'etre efficace.
C'est pour cela que je conseille de prendre un papier et un crayon et de mettre a plat ce que l'on souhaite et les solutions techniques envisagées.
etc...

Cordialement
Commenter la réponse de aerolyte
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Hello,

Pour tes questions :

1/
messageProduit.htmlText += LProduit+"\n";

2/ Normal car a chaque fois que tu ajoutes un article tu redéfini Lprix, qui prend du coup que le dernier. Il faudrait définir tes variables dans la fonction d'ajout directement.

++

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Commenter la réponse de Orange73
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
oups on s'est croisé aerolyte :-p

Comme le dit aerolyte, passer a l'AS3 sera beaucoup plus facile avec la gestion des evenements entre autres et surtout une programmation orienté objet.


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Commenter la réponse de Orange73
Messages postés
11
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
3 août 2011
0
Merci
...snif...
Commenter la réponse de fabien493
Messages postés
11
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
3 août 2011
0
Merci
Merci à vous pour vos réponses,
Honnêtement, je n'avais pas l'intention de prendre du temps pour ce genre de script, déjà que je développe tout le site web, html, php, mysql, et maintenant flash.

Mais au final, je me suis rendu compte que sans le faire moi même, cela ne sera pas comme je le veux, et donc me voila en route pour l'incommensurable chemin de prise de tête, et de cafés serrés, du pseudo développeur Flash.

Enfin bref, je vous remercie, je continue le développement en espérant que ça donne quelque chose de bien, par-contre L'AS3 c'est pas trop mon truc... mais qui ne tente rien n'a rien.

Amicalement,
Fabien493
Commenter la réponse de fabien493
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Hello,

Comme le dit aerolyte, passer a l'AS3 sera beaucoup plus facile avec la gestion des evenements entre autres et surtout une programmation orienté objet.


Bon ce n'est pas pour en rajouter une couche mais comme on dit : "jamais deux sans trois", donc je suis du même avis que mes camarades : passe à l'as3 et tu auras de meilleurs résultats .


BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
Commenter la réponse de BBFUNK01