Panier selon bouton

Panier selon bouton - PHP - Programmation

Marsh Posté le 30-11-2004 à 18:12:47    

Bonsoir,
Je dois créer un mini site pour commander des cds! On n'a une liste de cds et un bouton pour envoyer au panier comme cela :
 
 AUTEUR     TITRE    PRIX
 Mozart | Symphonie | 15   (bouton) AJOUTER AU PANIER
 Ataris | The world | 12   (bouton) AJOUTER AU PANIER
 Goldman| On ira    | 7    (bouton) AJOUTER AU PANIER
 
Je dois mettre dans un cookie le cd choisi mais je ne vois pas comment mettre cela par un boutton (car on ne saisie rien dans une variable...  :sweat: ) Je pensais mettre chaque cd dans une variable comme cela $auteur1=Mozart $titre1=Symphonie $prix1=15 etc etc pour tous les cds...mais ça va être assez lourd comme code non ?
 
Merci d'avance

Reply

Marsh Posté le 30-11-2004 à 18:12:47   

Reply

Marsh Posté le 30-11-2004 à 18:34:52    

tu as deux solutions :  

  • soit lier tes boutons a des liens du genre addProduit?ref=$ref
  • soit faire un formulaire par ligne et le bouton de bout de ligne est le "submit"


Message édité par fb@alphalog le 30-11-2004 à 18:35:06
Reply

Marsh Posté le 30-11-2004 à 18:44:50    

Tu as des exemples pour le addPRoduit?ref=$ref ?
 
Si tu fais un formulaire, c'est à l'utilisateur de saisir le cd qu'il veut ? parce que là tout est déjà saisie. Il a juste à cliquer sur le boutton ajouter au panier...
 
Pour toi quelle est la méthode la plus efficasse ? (et plus simple car je suis débutant  :cry: )
 
merci

Reply

Marsh Posté le 30-11-2004 à 19:03:32    

voila ce que je te conseille
chaque ligne ressemblera a :  

Code :
  1. <form action="ajoutDansLeCaddie.php" methode="POST">
  2. <li> titre , artiste , valeur
  3. <input type="hidden" name="ref" value="<? echo $ref; ?>">
  4. <submit value="ajouter au panier"></li>
  5. </form>


 
et la page ajouteDansLeCaddie.php ajoute la reference ( recuperé par  la variable $_POST['ref'] )  dans le cookie , ou dans la session , au choix

Reply

Marsh Posté le 30-11-2004 à 19:16:10    

ok ok je commence à comprendre comment tu vois la chose  ;)  
 
donc si j'ai bien compris (je m'avance peu être trop vite quand je dis ça... :lol: ), ça ressemblera à ça :
 

Code :
  1. <form action="ajoutDansLeCaddie.php" methode="POST">
  2. <li> Mozart , Symphonie , 15
  3. <input type="hidden" name="ref1" value="<? echo $ref1; ?>"> 
  4. <submit value="ajouter au panier"></li>
  5. </form>
  6. <form action="ajoutDansLeCaddie.php" methode="POST">
  7. <li> Ataris , The World , 12
  8. <input type="hidden" name="ref2" value="<? echo $ref2; ?>"> 
  9. <submit value="ajouter au panier"></li>
  10. </form>
  11. <form action="ajoutDansLeCaddie.php" methode="POST">
  12. <li> Goldman , On ira , 7
  13. <input type="hidden" name="ref3" value="<? echo $ref3; ?>"> 
  14. <submit value="ajouter au panier"></li>
  15. </form>


 
c'est ça?  
Par contre un truc que je pige pas c'est comment tu pourras réccupérer les valeurs une par une. Enfin tu vois quand l'utilisateur aura cliquer sur ajouter au panier, une autre page s'ouvre avec marquée " Le cd The World de The Ataris a bien été ajouté au panier"
 
Du genre le cd $cd2 de $auteur2 a bien été ajouté ! :heink:  
 
désolé désolé  :whistle:

Reply

Marsh Posté le 01-12-2004 à 17:43:25    

bon...c'est pas ça  :heink: si ? lol

Reply

Marsh Posté le 01-12-2004 à 18:57:17    

Ben, si tes trois champs cachés portaient tous le même nom, ça simplifierait déjà le traîtement ;)

Reply

Marsh Posté le 01-12-2004 à 19:15:48    

ok ok c'est vrai  ;)  je n'ai jamais utilisé type="hidden" donc je suis un peu perdu..:-)
 
donc je récapitule  
 

Code :
  1. <form action="ajoutDansLeCaddie.php" methode="POST"> 
  2. <li> Mozart , Symphonie , 15 
  3. <input type="hidden" name="ref" value="<? echo $ref1; ?>"> 
  4. <submit value="ajouter au panier"></li> 
  5. </form> 
  6. <form action="ajoutDansLeCaddie.php" methode="POST"> 
  7. <li> Ataris , The World , 12 
  8. <input type="hidden" name="ref" value="<? echo $ref2; ?>"> 
  9. <submit value="ajouter au panier"></li> 
  10. </form> 
  11. <form action="ajoutDansLeCaddie.php" methode="POST"> 
  12. <li> Goldman , On ira , 7 
  13. <input type="hidden" name="ref" value="<? echo $ref3; ?>"> 
  14. <submit value="ajouter au panier"></li> 
  15. </form>


 
mais c'est repond pas à ma question sur la reprise des valeurs une par une..
 
encore merci

Reply

Marsh Posté le 01-12-2004 à 19:29:11    

je la comprends pas bien, ta question :D
 
Ta liste de CD n'est pas dans une db ?

Reply

Marsh Posté le 01-12-2004 à 19:52:22    

Non c'est des noms dans un tableau et je dois récupérer cela en cliquant sur AJOUTER PANIER selon le cd par un cookie...il n'y a pas de bd...

Reply

Marsh Posté le 01-12-2004 à 19:52:22   

Reply

Marsh Posté le 01-12-2004 à 20:09:06    

Ah :)
 
Passe toutes les données que tu dois récupérer par des champs hidden, on avait supposé que tu avais une base pour retrouver tes données avec uniquement la ref :)

Reply

Marsh Posté le 01-12-2004 à 20:29:17    

Le probleme est que je ne vois pas à quoi sert HIDDEN (caché...) ! il faut donc créer une variable pour chaque auteur, chaque titre, chaque prix ?
 
vous pouvez juste me montrer un exemple svp  :cry:

Reply

Marsh Posté le 01-12-2004 à 20:40:33    

Code :
  1. <form action="ajoute.php" method="post">
  2. <li>Mozart, Symphonie, 15
  3. <input type="hidden" name="auteur" value="Mozart" />
  4. <input type="hidden" name="titre" value="Symphonie" />
  5. <input type="hidden" name="prix" value="15" />
  6. <input type="submit" value="Ajouter" />
  7. </li>
  8. </form>


 
Par exemple.

Reply

Marsh Posté le 01-12-2004 à 20:54:22    

ahhhhhhhhhhhhhhhhhhhhhh d'accord !!!!!!!!!!! je voissssss quoiiiiiiii !! je vais tenter ça tout de suite !!! Merci en tout cas  :)

Reply

Marsh Posté le 01-12-2004 à 21:29:56    

yessssssssssss !! ça marcheeeeeeeeeee merciiiiiiiiii biennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn  :p

Reply

Marsh Posté le 02-12-2004 à 20:44:49    

grrrrr j'ai encoreeeee un petit probleme !!!!
Je ne comprends pas pourquoi il me dit que j'ai déjà un cd dans la liste ! (en faite on peut avoir UN SEUL cd par catégorie ! Donc....si le cookie existe je dis que bah on peut en n'avoir qu'un...  :p  mais quand je click sur ajouter panier il me dit qu'on peut en acheter qu'un et il me créé le cookie...alors qu'il devrait me dir que le cd a été ajouté et ensuite si je reclick sur ajouter panier...impossible d'avoir 2 cd...mais là... :sweat:  
 

Code :
  1. <?
  2.    ###Si le cookie n'existe pas, on enregistre la commande###
  3.    if((empty($_COOKIE["cookie_auteur"]) or empty($_COOKIE["cookie_titre"]) or empty($_COOKIE["cookie_prix"])))/* on teste si tous les champs sont remplis */
  4.      {
  5.     echo 'Boutique Moderne <br>';
  6.     echo 'Le cd ', $titre,' de ', $auteur, 'a été ajouté<br>';
  7.     echo '<a href="classique.php">[suite]</a>';
  8.      }
  9.     else
  10.       ###Si il existe, on dit à l'utlisateur qu'il a déjà un cd classique au panier###
  11.      {
  12.     echo 'Boutique Moderne <br>';
  13.     echo 'Vous pouvez acheter seulement un cd<br>';
  14.     echo '<a href="classique.php">[suite]</a>';
  15.     }
  16.     ?>

Reply

Marsh Posté le 02-12-2004 à 23:59:15    

Juste comme ça, pourquoi tu utilises des cookies pour ce genre de question ?
 
Sinon (à nouveau) je comprends pas ton problème, là, tu vérifies l'existence du cookies, pas son contenu  :heink:

Reply

Marsh Posté le 03-12-2004 à 17:36:43    

Parce que on étudie les cookies en ce moment en cours..donc je dois utiliser des cookies pour faire ça :/ mais le blem c'est qu'ils ne font pas de cours sur les cookies !! Il te filent le sujet et DEMMERDER vous  :pt1cable:  !!! Donc tout doit être gérer par des cookies  :cry:  
 
Bon la le pb c'est que quand le cookie n'est pas créer, c'est impec ! Il me dit bien que le cd a été ajouté dans le panier ! Par contre quand je veux en reprendre un (et on a le droite qu'à UN seul cd) je dois dire que Non il y en a déjà un...Il me fait ça, mais le pb c'est que il m'écrase l'ancien cookie et mais un nouveau (le 2eme cd que je choisis...) donc je pige pas ça, mon code semble être bon...

Reply

Marsh Posté le 03-12-2004 à 17:42:32    

Forcément qu'il écrase l'ancien cookie, je sais pas où tu cases la création, mais elle est pas dans le test que tu indiques plus haut :)

Reply

Marsh Posté le 03-12-2004 à 18:12:07    

Bah il se met dans le dossier cookie avec l'ensemble des autres cookies...
 
setcookie('cookie_auteur',$auteur,time() +10800,'/');
 
Mon path est '/'...
 
mais ça fontionne pour ma page d'index ! Si le cookie de l'utilisateur existe on l'envoit sur la page pour acheter des cds sinon sur la page inscription !
 
Je ne vois pas pourquoi il m'écrase les cookies pour les cds   :cry:

Reply

Marsh Posté le 04-12-2004 à 20:24:37    

alors naceroth tu vois pas comment je pourrais faire pour cela :s

Reply

Marsh Posté le 04-12-2004 à 21:33:27    

Si probablement, je t'ai dit plus haut que tu créais probablement pas le cookies au bon endroit :)
 
Là, comme tu donnes pas la phase de création du cookie, c'est difficile d'être plus précis :)

Reply

Marsh Posté le 05-12-2004 à 10:55:10    

bah la création de cookie se fait à partir de cette déclaration...
 
setcookie('cookie_auteur',$auteur,time() +10800,'/');  
 
et le path est '/' donc mes cookies se logent tous dans  
C:\Documents and Settings\moi\Cookies
 
 
Ce n'est pas settcookie la phrase pour créer le cookie ?

Reply

Marsh Posté le 05-12-2004 à 16:13:41    

Pourquoi j'ai une erreur de ce type ???
 
Parse error: parse error, unexpected '{' in c:\logiciel\easyphp1-7\www\copie de mp3\test\untitled-2.php on line 10
 
 

Code :
  1. if((empty($_COOKIE['cookie_prix_classique']) or (empty($_COOKIE['cookie_prix_classique']) or (empty($_COOKIE['cookie_poprock']) or empty($_COOKIE['cookie_prix_variete']))
  2. { ##### LIGNE 10 ###
  3. $prixjazz = 0
  4. $prixclassique = 0
  5. $prixpoprock = 0
  6. $prixvariete = 0
  7. }
  8. ?>


Message édité par jiojio le 05-12-2004 à 16:14:09
Reply

Marsh Posté le 05-12-2004 à 17:35:07    

Jiojio a écrit :

bah la création de cookie se fait à partir de cette déclaration...
 
setcookie('cookie_auteur',$auteur,time() +10800,'/');  
 
et le path est '/' donc mes cookies se logent tous dans  
C:\Documents and Settings\moi\Cookies
 
 
Ce n'est pas settcookie la phrase pour créer le cookie ?


 
C'est pas possible, dit moi que tu le fait exprès ? je me moque complètement de savoir où ils sont stockés sur ton HD, avec quelle instruction tu les crées, je veux savoir où dans ton code se crée le cookie, donc je voudrais voir un code avec un setcookie dedans :)
 
PS : la parse error est du au fait qu'il manque au moins une ) dans le if

Reply

Marsh Posté le 05-12-2004 à 17:47:59    

naceroth a écrit :

C'est pas possible, dit moi que tu le fait exprès ? je me moque complètement de savoir où ils sont stockés sur ton HD, avec quelle instruction tu les crées, je veux savoir où dans ton code se crée le cookie, donc je voudrais voir un code avec un setcookie dedans :)
 
PS : la parse error est du au fait qu'il manque au moins une ) dans le if


 
 
euh....ça doit être ça que tu veux je crois  :wahoo: ...na?? lol  
 

Code :
  1. <?
  2. settype($auteur,'string');
  3. settype($titre,'string');
  4. settype($prix,'string');
  5. $auteur="Michel Sardou";
  6. $titre="Cool la vie";
  7. $prix="7 €";
  8. setcookie('cookie_auteur_variete',$auteur,time() +10800,'/');/* expire dans 3 heures */
  9. setcookie('cookie_titre_variete',$titre,time() +10800,'/');/* expire dans 3 heures */
  10. setcookie('cookie_prix_variete',$prix,time() +10800,'/');/* expire dans 3 heures */
  11. ?>


 
Je mets ce code en haut de la page avant la balise HTML

Reply

Marsh Posté le 05-12-2004 à 17:51:47    

Donc avant de tester s'il n'existe pas déjà un cookie ?

Reply

Marsh Posté le 05-12-2004 à 17:53:21    

euh oui... :??:
 
mais la déclaration de cookie se fait avt HMTL on peut faire des conditions là dedant aussi ?????


Message édité par jiojio le 05-12-2004 à 17:54:27
Reply

Marsh Posté le 05-12-2004 à 18:00:46    

Evidement, la seule contrainte est liée au fait qu'un cookie doit précéder tout affichage sur le client, ensuite que tu le fasses avant le <html> ou après en utilisant un buffer, c'est kif kif :)

Reply

Marsh Posté le 05-12-2004 à 18:01:56    

oula un "buffer" c'est quoi...

Reply

Marsh Posté le 05-12-2004 à 18:49:50    

ah non voilà ! ça marche parfaitement maintenant  :ange:  !!!
 
PAR CONTRE...lol j'ai un pb pour supprimer mes cookies  
 

Code :
  1. setcookie('cookie_auteur_classique');
  2. setcookie('cookie_titre_classique');
  3. setcookie('cookie_prix_classique');
  4. setcookie('cookie_auteur_jazz');
  5. setcookie('cookie_titre_jazz');
  6. setcookie('cookie_prix_jazz');


 
J'ai fait ça pour tous les cookies que je voulais supprimer mais il m'efface des cookies qu'il ne faut pas par moment..ou alors il n'efface rien du tout  :sweat:

Reply

Marsh Posté le 05-12-2004 à 18:52:11    

les buffers de sortie permettent de contrôler quand les données sont envoyées au navigateur, on s'en sert notamment lorsqu'on doit envoyer des entêtes (avec header ou autres) après avoir envoyé des données.
 
Bref, t'en préoccupe pas encore si tu ne les as pas vu lors de tes cours :)

Reply

Marsh Posté le 05-12-2004 à 18:57:31    

à vrai dire..je n'ai pas de cour sur le php...on nuos file le sujet et AUTONOMIE... ils te donnent une aide à 2 balles qui sert à rien du tout  :kaola: !!!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed