Pb affichage données dans panier

Fermé
Lolo - 3 août 2011 à 12:40
 Lolo - 3 août 2011 à 16:07
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

Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
Modifié par Fallentree le 3/08/2011 à 13:02
cela ne vient pas du type de la variable ?
char au lieu de string
0
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
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
Modifié par Fallentree le 3/08/2011 à 14:49
un print_r de session ne t aide pas ?
0
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
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
Modifié par Fallentree le 3/08/2011 à 15:11
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
Le voici !
Bon courage ;-)
0
<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