comment créer un panier sans bdd

Par macinsteph, il y a 12 ans


salut,
Je vous explique mon soucis :
je souhaite afficher le nombre d'article sélectionné par le visiteur sans le stocker dans une base de données.
J'ai des select avec des options et dans les options j'ai des quantité, je voudrais récupérer les quantités en les afficher en temps réel pour indiquer le nombre d'article sélectionné.
Est ce possible ?

merci

28 réponses

Vallyan, il y a 12 ans

Bien sur: dans un cookie ou en session.

Lartak, il y a 12 ans

Bonjour.
Il vaut mieux en Session, il ne faut pas oublier que pour les cookies il faut demander l'accord aux utilisateurs maintenant avant d'en créer.
Ils ont le droit de refuser, et s'ils refusent ton système tombe à l'eau. :)

Vallyan, il y a 12 ans

Effectivement, quoiqu'il me semble que certains types de cookies ne sont pas soumis a cette nécessité d'autorisation, par exemple ceux servant pour les paniers.

Je peux me tromper, cela dit ...

Glaived, il y a 12 ans

De mémoire tu te trompe pas vall' ^^
Les sessions serait une bonne solution sauf qu'elles sont temporelles, chose pas forcement tip-top dans le cas où un user voudrait stocker un panier temporaire, de plus, tu pourras pas interagir en temps réelle avec les session, un refresh de la page seras requis.
Donc faut te tourné vers les cookies, qui eux seront manipulable via JS

macinsteph, il y a 12 ans

Ok merci les gars pouvez vous si possible me montrer un exemple de code avec le système que vous m'avez donné.
Merci

Garniture-banner, il y a 12 ans

pour faire un Pannier, il te faut une session, dans laquelle tu stock:
row_id, nom_produit, quantite_produit, prix, [options]
row_id c'est l'id de la ligne du cart, en général id_produit que tu concatène avec des options.
option c'est un tableau d'option pour stocker des parametres comme 'taille' => 'large', 'couleur' => 'bleu'
une fonction qui calcule le total HT et TTC

il faut que tu fasse une fonction éditer en faisant bien attention à avoir des row_id uniques

après hue cocotte !

macinsteph, il y a 12 ans

Salut garniture banner,
merci pour tes explications mais je suis bille la dedans je commence juste a apprendre le php alors les sesions c du chinois.
par contre je cherche a recuperer uniquement la quantité d articles. Je ne veux pas le reste.
merci

Garniture-banner, il y a 12 ans

Regardes bien l'utilisation des tableaux en php,
ensuite : la session
les superglobales

avec tout sa t'as tous les outils pour réussir.

macinsteph, il y a 12 ans

merci de votre coup de main mais je vais vous expliquer ce que je veux faire, peu être que je me suis mal expliqué :
J'ai sur ma page des articles avec des selects et des options, ou l'utilisateur choisit la taille et la quantité. ce que je veux faire c'est récupérer le choix quantité et comptabiliser le nombre d'article que l'utilisateur a choisi, et les afficher dans le header.
Je ne souhaite pas utiliser de base de donnée et je veux que l'addition se fasse en temps réel.
Ex: je choisi 2 t-shirt, 1 pantalon ce qui fait 3 articles au total, et que le total s'affiche dans le header.Si il rajoute un article supplémentaire qu'il s'ajoute aux articles déjà sélectionné.

merci

NB: je sais je suis une bille!!

Garniture-banner, il y a 12 ans

Tu n'es pas une bille, c'est juste que tu tentes un marathon juste après avoir appris à marcher.
Faire un site marchand c'est dur et tu n'as pas droit à l'erreur...

macinsteph, il y a 12 ans

en faite je veux faire quelque chose de simple, juste récupérer les quantité et les additionner et les afficher.

macinsteph, il y a 12 ans

j'ai réussi à récupérer et afficher les valeurs en Jquery maintenant c les additionner.
je cherche sur le net mais je ne trouve pas ce que je veux.

Vallyan, il y a 12 ans

Ca se passe en plusieurs étapes:
1- Tu récupères les valeurs que tu veux (ca apparement c'est fait)
2- Tu les stocks dans des variables
3- Tu les additionnes
4- Tu stockes ca en local storage si tu veux les concerver de page en page
5- Tu l'afficge quelque part sur ta page

Montre nous le code que tu as déja. Je comprends pas bien comment tu peux coincer sur une simple addition ...

macinsteph, il y a 12 ans

je vous montre mon code que j'ai fais en Jquery :

<script type="text/javascript">
$(document).ready(function(){ 
        $('#pantaM_q').change(function() {
      var a = $("#pantaM_q option:selected").val(); 
        $('#retour').html(a); 
      }) 
        $('#pantaw_q').change(function() {
     var b = $("#pantaw_q option:selected").val(); 
        $('#retour').html(b); 

     })       
});
</script>

<div class="compteur">
    <h2>Nombre d'articles :</h2><span id="retour"></span>
</div>

<select id="pantaM_q" class="qtt" name="pantaM_q">
    <option>Choisir</option>
    <option value=0>0</option>
    <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>
    </select>

le premier code récupère la valeur de mon option sélectionnés et l'affiche dans la div retour
le deuxième c'est ma div retour.
le troisième l'un de mes selects, et j'en ai 22.

merci

macinsteph, il y a 12 ans

mon soucis c'est d'additionner la valeur a et b

Vallyan, il y a 12 ans

Il faut juste que tu les stockes dans une variables, que tu utilises a chaque fois pour ajouter tes trucs:
http://codepen.io/fvilliers/pen/ofkgz dans cet exemple c'est la variable total_articles.

Vallyan, il y a 12 ans

D'ailleurs ton code est trop compliqué.
Si tous tes select ont une classe qtt, alors pas besoin de fair eun $.change() pour chaque. Un seul

$(".qtt").change(function(e){ value = $(this).val() })
macinsteph, il y a 12 ans

et bien écoute ça fonctionne avec le code du lien que tu m'as donné.
super je te remercie beaucoup, c'est la qu'on voit que j'ai des trucs à apprendre.

merci encore

Vallyan, il y a 12 ans

Cool, bonne continuation !

macinsteph, il y a 12 ans

autre chose comment faire pour que la valeur de total_articles soit par défault à 0 au départ?

merci

Vallyan, il y a 12 ans

C'est dans le lien que je t'ai filé: tu fais un

var total_articles = 0;
macinsteph, il y a 12 ans

il n'est pas à 0 par défault il n'affiche rien

macinsteph, il y a 12 ans

je voudrais qu'il affiche 0

Vallyan, il y a 12 ans

Il est a 0, mais tu ne l'affiches pas (tu l'affiches uniquement lorsque tu change un select).
Ajoute simplement un 0 dans ton HTML a l'intérieur de ta span :p ...

macinsteph, il y a 12 ans

ok super cool merci encore ciao
tu est d'ou ?
moi de bretagne finistère nord

merci

Vallyan, il y a 12 ans

lol.

Je suis aux Etats Unis :D

macinsteph, il y a 12 ans

ok alors bonne journée moi je vais faire dodo