Pb affichage données dans panier

Lolo -  
 Lolo -
Bonjour,

Quelqu'un pourrait il me dire comment cela se fait que lorsque mon client sélectionne un produit, une quantité et une prix et qu'il les ajoute au panier, le panier ne prend en compte que la première lettre/chiffre du mot ou quantité ???

Exemple:
Produit Quantité Prix Unitaire
g 2 4 X
Total : 8

ça devrait donner ça:
Produit Quantité Prix Unitaire
gite205106 2 40 X

Total : 8

Merci pour vos réponses.

2 réponses

  1. Fallentree Messages postés 2445 Statut Membre 210
     
    cela ne vient pas du type de la variable ?
    char au lieu de string
    0
  2. Lolo
     
    Je ne sais pas ?
    J'ai créé un formulaire avec method="POST", une requête pour insérer et récupérer les données du formulaire en POST et ensuite j'ai récupéré sur le net un script pour créer un panier simple et il utilise la superglobale $_SESSION. J'ai donc écris $_SESSION=$_POST afin qu'il récupère les données dans la bdd.

    Est ce le problème ?
    0
    1. Fallentree Messages postés 2445 Statut Membre 210
       
      un print_r de session ne t aide pas ?
      0
    2. Lolo
       
      Je comprend pas quand je fais un print_r ($_SESSION ['panier'] ['produit']) et pareil pour la quantite et le prix, il m'affiche bien les bonnes valeurs ?
      0
    3. Fallentree Messages postés 2445 Statut Membre 210
       
      si en amont tu as les bonnes valeurs en aval ca ne peut etre que une mauvaise manip
      mais sans bout de code c est impossible de pointer une erreur!!!
      0
    4. Lolo
       
      Le voici !
      Bon courage ;-)
      0
    5. Lolo
       
      <form method="post" action="panier.php">
      <table style="width: 400px; margin-left:200px; margin-top:70px;">
      <tr>
      <td colspan="4" style="padding:50px;" >Votre panier</td> <br/>
      </tr>
      <tr>
      <td>Produit</td>
      <td>Quantité</td>
      <td>Prix Unitaire </td>
      </tr>



      <?php
      if (creationPanier())
      {
      $nbArticles=count($_SESSION['panier']['produit']);
      if ($nbArticles <= 0)
      echo '<tr><td><script type="text/javascript">
      alert("Votre panier est vide"); </script> </ td></tr>';
      else
      {
      for ($i=0 ;$i < $nbArticles ; $i++)
      {
      echo "<tr>";
      echo "<td>".htmlspecialchars($_SESSION['panier']['produit'][$i])."</ td>";
      echo "<td><input type=\"text\" size=\"4\" name=\"q[]\" value=\"".htmlspecialchars($_SESSION['panier']['quantite'][$i])."\"/></td>";
      echo "<td>".htmlspecialchars($_SESSION['panier']['prix'][$i])."</td>";
      echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['produit'][$i]))."\">X</a></td>";
      echo "</tr>";
      }

      echo "<tr><td colspan=\"2\"> </td>";
      echo "<td colspan=\"2\">";
      echo "Total : ".MontantGlobal();
      echo "</td></tr>";

      echo "</td></tr>";
      }
      }
      ?>

      <?php
      $erreur = false;

      $action = (isset($_POST['action'])? $_POST['action']: (isset($_GET['action'])? $_GET['action']:null )) ;
      if($action !== null)
      {
      if(!in_array($action,array('ajout', 'suppression', 'refresh')))
      $erreur=true;

      //récuperation des variables en POST ou GET
      $l = (isset($_POST['prix'])? $_POST['prix']: (isset($_GET['prix'])? $_GET['prix']:null )) ;
      $p = (isset($_POST['produit'])? $_POST['produit']: (isset($_GET['produit'])? $_GET['produit']:null )) ;
      $q = (isset($_POST['quantite'])? $_POST['quantite']: (isset($_GET['quantite'])? $_GET['quantite']:null )) ;

      //Suppression des espaces verticaux
      $l = preg_replace('#\v#', '',$l);
      //On verifie que $p soit un float
      $p = floatval($p);

      //On traite $q qui peut etre un entier simple ou un tableau d'entier

      if (is_array($q)){
      $QteArticle = array();
      $i=0;
      foreach ($q as $contenu){
      $QteArticle[$i++] = intval($contenu);
      }
      }
      else
      $q = intval($q);

      }

      if (!$erreur){
      switch($action){
      Case "ajout":
      ajouterArticle($l,$q,$p);
      break;

      Case "suppression":
      supprimerArticle($l);
      break;

      Case "refresh" :
      for ($i = 0 ; $i < count($QteArticle) ; $i++)
      {
      modifierQTeArticle($_SESSION['panier']['produit'][$i],round($QteArticle[$i]));
      }
      break;

      Default:
      break;
      }
      }
      ?>

      </table>
      0