panier virtuel PHP

panier virtuel PHP - PHP - Programmation

Marsh Posté le 21-09-2006 à 22:11:23    

Bonjour.
 
Je suis en train d'essayer de creer mon panier virtuel en PHP a l'aide des sessions...
 
J'ai donc un systeme de frame.
Menu rayon1/rayon2/rayon3 ....  / Page dynamique / caddy
 
lorsque je clique sur rayon1 /2 /ou 3, il passe par GET le num de rayon.
La page dynamique est en faite une requete affichant tout les produit se trouvant dans le rayon 1/2/3.
Les resultats sont dans un tableau de cette sorte :  
 

Code :
  1. while($tab_resultat = $session_sql -> traite_resultat($recup_select)) {
  2. if(!isset($i))
  3. $i=0;
  4. $i++;
  5.   echo '
  6.      <form action="" name="" method="post"  >
  7.    <tr bgcolor="'.$alt.'">
  8.    <td  align=center > <input type="TEXT" SIZE=2 name="ref'.$rayon.$i.'" value="'.$tab_resultat["ref"].'"readonly></td>
  9.    <td  align=center > <input type="TEXT" SIZE=8 name="nom'.$rayon.$i.'" value="'.$tab_resultat["nom"].'"readonly ></td>
  10.    <td  align=center > <input type="TEXT" SIZE=15 name="desc'.$rayon.$i.'" value="'.$tab_resultat["desc"].'"readonly ></td>
  11.    <td  align=center > <input type="TEXT" SIZE=3 name="prixttc'.$rayon.$i.'" value="'.$tab_resultat["prixttc"].'"readonly > €</td>
  12.    <td  align=center > <input type="TEXT" SIZE=2 name="stock'.$rayon.$i.'" value="'.$tab_resultat["stock"].'"readonly ></td>
  13.    <td  align=center > <center><INPUT TYPE="button" VALUE="-" name="'.$rayon.$i.'" style="background-color:yellow" onClick="modifier(-1,'.$tab_resultat["stock"].',this.name)">
  14.                                <INPUT TYPE="button" VALUE="+" name="'.$rayon.$i.'" style="background-color:yellow" onClick="modifier(+1,'.$tab_resultat["stock"].',this.name)">
  15.                                <input type="TEXT" SIZE=2 id="qtecom'.$rayon.$i.'" name ="qtecom'.$rayon.$i.'" value="0" readonly > </center></td>
  16.                                <input type= HIDDEN name="nb_result" value="'.$i.'">
  17.    </tr>   ';
  18. if($alt=="#eeeeee" ) {$alt="#cccccc";}else{$alt="#eeeeee";}
  19. }


 
 
une fois les quantité voulu, je fais cliker sur un bouton, qui affiche un recapitulatif et qui met ca dans une varialbe de session. qui est envoyé a la page caddy.  
 

Code :
  1. <? if (isset ($_POST['rec']) && !empty($_POST['rec']) )
  2.     {
  3.       $i=$_POST['nb_result'];
  4.       $z='1';
  5.       while($z!=$i+1)
  6.       {
  7.           if($_POST['qtecom'.$rayon.$z]!='0')
  8.           {
  9.                if (!isset($caddy))
  10.                $caddy=1;
  11.                else $caddy++;
  12.                echo("il y a $caddy produits selectionné" );
  13.           echo "<br><center>vous avez commander: ".$_POST['qtecom'.$rayon.$z]." ".$_POST['nom'.$rayon.$z]."</center>";
  14.           $_SESSION['ref'.$rayon.$z]=$_POST['ref'.$rayon.$z];
  15.           $_SESSION['nom'.$rayon.$z]=$_POST['nom'.$rayon.$z] ;
  16.           $_SESSION['qtecom'.$rayon.$z]=$_POST['qtecom'.$rayon.$z];
  17.           }
  18.           else {
  19.           }
  20.           $z++;
  21.       }
  22.      echo "<center><br><li><a href='caddy.php?caddy=".$caddy."&rayon=".$rayon."' target='caddy'>Confirmer votre commande pour ce rayon SVP en cliquant ici ! </a></center>" ;
  23.       //$_SESSION['i']=0;
  24.     }


 
 
 
DU COTÉ de caddy.php  
 

Code :
  1. <b>Contenu du panier : <b>
  2. <?php
  3.       $i=$_SESSION['sumcaddy'];
  4.       $z='1';
  5.       $rayon=$_GET['rayon'];
  6. echo '
  7. <table width=90% align=center>
  8. <tR BGCOLOR="orange" >
  9. <center>
  10.   <td> <center>Réf </center> </td>
  11.   <td> <center>Nom</center></td>
  12.   <td> <center>Qté</center></td>';
  13.   $alt = "#eeeeee";
  14. while($z!=$i+1)
  15. {
  16.   echo '
  17.      <form action="" name="" method="post">
  18.    <tr bgcolor="'.$alt.'">
  19.    <td  align=center > <input type="TEXT" SIZE=1 name="ref'.$rayon.$i.'" value="'.$_SESSION['ref'.$rayon.$z].'"readonly></td>
  20.    <td  align=center > <input type="TEXT" SIZE=6 name="nom'.$rayon.$i.'" value="'.$_SESSION['nom'.$rayon.$z].'"readonly ></td>
  21.    <td  align=center > <input type="TEXT" SIZE=2 name="desc'.$rayon.$i.'" value="'.$_SESSION['qtecom'.$rayon.$z].'"readonly ></td>' ;
  22.    $z++;
  23. }
  24. ?>


 
 
mais c'est pas au point.
au changement de rayon ca se remet a 0 et je sais pas comment y remedier...
 
un petit coup de main ?
 
merci !  
 
 
 

Reply

Marsh Posté le 21-09-2006 à 22:11:23   

Reply

Marsh Posté le 21-09-2006 à 22:16:57    

Rappel :
 
AU DEBUT DE CHAQUE PAGE, mettre un session start en PREMIER et ne RIEN AFFICHER AVANT LE COMMENCEMENT DE LA SESSION
 
A priori tu ne respectes pas la dite regle (caddy.php par ex)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 21-09-2006 à 22:18:12    

sisi je respecte ;)  
mais ca coule tellement de source que je n'ai pas copié cette ligne ni celle de la mise en forme !
j'ai juste indiqué le code traitant du panier...  

Reply

Marsh Posté le 21-09-2006 à 23:55:26    

tu pourras jeter tout ton code HTML à la poubelle au passage

Reply

Marsh Posté le 22-09-2006 à 21:10:08    

pourquoi tu dis ca ?
 
La j'ai un problème sur array_search....
 
je fais la fonction  

Code :
  1. function verif_panier($ref_article)
  2. {
  3.     var_dump ($ref_article);
  4.     echo "le paramètre passé est : ".$ref_article;
  5.     $present = false;
  6.     if(array_search($ref_article,$_SESSION['panier']['ref']) != false//Si il a  trouvé la valeur
  7.     {
  8.         echo "la valeur est trouvé, Spresent est true";
  9.         $present = true;
  10.     }
  11.     return $present;
  12. }


 
 
et dans mon code :  
 
 

Code :
  1. while($z!=$i+1)
  2.       {
  3.           if (!verif_panier($_POST['ref'.$rayon.$z]))
  4.           {
  5.           echo "article deja présent";
  6.           $key = array_search($_POST['ref'.$rayon.$z],$_SESSION['panier']['ref']);
  7.           $_SESSION['panier']['qtecom'][$key]=$_POST['qtecom'.$rayon.$z];
  8.           }
  9.           else
  10.           {if ($_POST['qtecom'.$rayon.$z]!=0)
  11.           {
  12.           echo "<br><center>vous avez commander: ".$_POST['qtecom'.$rayon.$z]." ".$_POST['nom'.$rayon.$z]."</center>";
  13.           array_push($_SESSION['panier']['ref'],$_POST['ref'.$rayon.$z]);
  14.           array_push($_SESSION['panier']['nom'],$_POST['nom'.$rayon.$z]);
  15.           array_push($_SESSION['panier']['qtecom'],$_POST['qtecom'.$rayon.$z]);
  16.           array_push($_SESSION['panier']['prix'],$_POST['prixttc'.$rayon.$z]);
  17.           }}
  18.           $z++;
  19.        }


 
et pour lui la fonction retourne TOUJOURS false... meme si la ref est deja dans le $_SESSION...

Message cité 1 fois
Message édité par Agmoh le 22-09-2006 à 21:14:19
Reply

Marsh Posté le 23-09-2006 à 13:03:05    

Agmoh a écrit :

pourquoi tu dis ca ?
...


 
Parce que ton code n'est pas du html [:spamafote]
Y'a des erreurs à la pelle, sur des trucs qui ne sont pas forcément compliqués...
Genre onclick et pas onClick, les tableaux, balise center, les tR ou BGCOLOR qui ne sont pas écris correctement, les SIZE=15  en oubliant les guillemets...Enfin tu m'as compris

Reply

Sujets relatifs:

Leave a Replay

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