Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1055 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] ajout panier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] ajout panier

n°1109212
jerome134
Posté le 06-06-2005 à 09:41:34  profilanswer
 

bonjour,  
je réalise un caddie et j'aimerai savoir comment faire pour pouvoir ajouter des produits dans mon panier sans pour autant être redirigé vers une autre page...
l'ajout dans le panier se fait par un bouton de formulaire:

Code :
  1. <form action='ajouter.php' method='GET'><input type='hidden' name='cat' value='".$categorie."'><input type='hidden' name='prod' value='".$donnees['id']."'>".$donnees['nom']." ".$donnees['prix']."<input type='submit' value='ajouter au panier?' name='bouton'></form>


quelqu'un aurait-il une solution à me proposer...?
merci d'avance :)


Message édité par jerome134 le 07-06-2005 à 15:58:31
mood
Publicité
Posté le 06-06-2005 à 09:41:34  profilanswer
 

n°1109378
jerome134
Posté le 06-06-2005 à 11:10:50  profilanswer
 

ok, ça marche avec un include, mais maintenant, j'ai un problème avec les flèches du navigateur, si j'utilise "précédent" depuis la page de selection du produit (là où ajouter.php redirige), je me retrouve avec l'article selectionné en double...
quelqu'un saurait-il comment faire...?
merci

n°1109384
PETOZAK
Posté le 06-06-2005 à 11:20:05  profilanswer
 

Salut,
Tu devrais stocker ton panier dans une variable de sesion de type Array, il te suffirait apres de verifier si il y a doublon avant de faire l'ajout...
Je te posterai du code ce soir si je retrouve ce que j'ai fait ;)

n°1109428
jerome134
Posté le 06-06-2005 à 11:48:49  profilanswer
 

ok, ben merci ;)

n°1110462
PETOZAK
Posté le 06-06-2005 à 23:35:17  profilanswer
 

Voila:

Code :
  1. <? session_start();
  2. include 'inc_connect.php';
  3. $ref=$_GET['ref'];
  4. $sec=$_GET['sec'];
  5. $found=false;
  6. foreach ($_SESSION['panier'] as $ligne)
  7.  {
  8.   if($ligne['ref']==$ref)
  9.    {
  10.    $found=true;
  11.    break;
  12.    }
  13.  }
  14. //On ne rajoute au caddie que si c'est une nouvelle annonce
  15. if (!$found)
  16. {
  17. $newset = array(); // Chaque element du tableau est lui-même un tableau
  18. $newset['ref'] =  $ref;
  19. $newset['sec'] = $sec;
  20. $_SESSION['panier'][] = $newset;
  21. echo "<font size=2 color=blue><b>L'annonce $ref a été rajoutée à votre caddie</b></font><br>";
  22. if(isset($_SESSION['client_id']))
  23. {
  24.  $panier=$_SESSION['panier'];
  25.  $client_id=$_SESSION['client_id'];
  26.  $panier=addslashes(serialize($panier));
  27.  $query="update admin_client set caddie='$panier' where id='$client_id'";
  28.  mysql_query($query) or die(mysql_error()) ;
  29. }
  30. }
  31. else
  32. echo "<font size=2 color=blue><b>L'annonce $ref est déjà dans votre caddie</b></font><br>";
  33. ?>
  34. <table height="100%" width="100%"><tr align="center"><td align="center"><button  onClick="window.close()">Fermer</button></td></tr></table>


 
Ca c'est pour l'ajout

n°1110466
PETOZAK
Posté le 06-06-2005 à 23:36:18  profilanswer
 

Les fonctions:

Code :
  1. <?
  2. ob_start();
  3. include "../interface/entete.php" ;
  4. ?>
  5. <?
  6. function KillAnnonce($reference)
  7. {
  8. $newset = array();
  9. foreach ($_SESSION['panier'] as $ligne)
  10.  {
  11.   if($ligne['ref']!=$reference)
  12.    {
  13.    $newset[]=$ligne;
  14.    }
  15.  }
  16. $_SESSION['panier']=$newset;
  17. $client_id=$_SESSION['client_id'];
  18. //On met a jour le caddie dans la base
  19. $newset=addslashes(serialize($newset));
  20. $query="update admin_client set caddie='$newset' where id='$client_id'";
  21. mysql_query($query) or die(mysql_error()) ;
  22. }
  23. ?>
  24. <?
  25. if ( !isset($_SESSION['panier']) || sizeof($_SESSION['panier'])==0 )
  26.  {
  27.  //Le Panier est vide donc on ne rentre pas ici
  28. ?>
  29. <script language="javascript">alert("Panier vide" );document.location='../accueil/accueil.php';</script>
  30. <?
  31. }
  32. else
  33. {
  34. if (isset($_GET['kill']))
  35.  {
  36.   $ref=$_GET['kill'];
  37.   KillAnnonce($ref);
  38.  }
  39.  echo "<BR><BR><table width='600'>
  40.    <tr bgcolor='#D3DCE3'>
  41.    <td><font color='blue'><B>Reference</font></td>
  42.    <td><font color='blue'><B>Secteur</font></td>
  43.    <td><font color='blue'><B>Enlever</font></td>
  44.    </tr>";
  45.  $cpt=0;
  46.  foreach ($_SESSION['panier'] as $ligne)
  47.  {
  48.   if ($cpt % 2 == 0)
  49.    $TR="<tr bgcolor='#DDDDDD'>";
  50.   else
  51.    $TR="<tr bgcolor='#CCCCCC'>";
  52.   $ref=$ligne['ref'];
  53.   $sec=$ligne['sec'];
  54.   echo"$TR
  55.    <TD>"."<a href='javascript:aff(\"".$ref."\",\"".$sec."\" )'>"."<font color='#0099CC'><B>$ref</B></font></a></TD>
  56.    <TD>$sec</TD>
  57.    <TD><a href='mon_caddie.php?kill=$ref'>Enlever</a></TD>
  58.    </TR>";
  59.    $cpt++;
  60.  }
  61.  echo "</table>";
  62. }
  63. ?>
  64. <?php
  65. include '../interface/piedpage.php';
  66. ?>

n°1110472
PETOZAK
Posté le 06-06-2005 à 23:37:52  profilanswer
 

Voila j'espere que ca t'aidera ;)

n°1110564
jerome134
Posté le 07-06-2005 à 09:21:33  profilanswer
 

ben écoute, je te remercie  :sol:  
vraiment cool.
en tous cas, c'était effectivement des variables de session que j'utilisais, mais je ne faisais pas la vérification avant d'ajouter...
merci ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] ajout panier

 

Sujets relatifs
Support de caractères ( ' par ex)dans une info-bulle [RESOLU][resolu] requete avec date
[Résolu] tableaux et sessionsProbleme avec un Applet [Résolu]
[Access 2003] Spécification d'importation [RESOLU]classe + lien vers une DB prob incompréhenssible (resolu)
[RÉSOLU] Php + fichier txt[RESOLU] Requete SQL particulière
[Résolu] gestion panier... 
Plus de sujets relatifs à : [Résolu] ajout panier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR