[Résolu] ajout panier

ajout panier [Résolu] - PHP - Programmation

Marsh Posté le 06-06-2005 à 09:41:34    

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
Reply

Marsh Posté le 06-06-2005 à 09:41:34   

Reply

Marsh Posté le 06-06-2005 à 11:10:50    

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

Reply

Marsh Posté le 06-06-2005 à 11:20:05    

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 ;)

Reply

Marsh Posté le 06-06-2005 à 11:48:49    

ok, ben merci ;)

Reply

Marsh Posté le 06-06-2005 à 23:35:17    

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

Reply

Marsh Posté le 06-06-2005 à 23:36:18    

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. ?>

Reply

Marsh Posté le 06-06-2005 à 23:37:52    

Voila j'espere que ca t'aidera ;)

Reply

Marsh Posté le 07-06-2005 à 09:21:33    

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 ;)

Reply

Sujets relatifs:

Leave a Replay

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