comment créer un panier (caddie)

Répondre
caporga
le 12/09/2007 à 17:14
caporga
Bonjour la communauté
je suis à la recherche d'explication concernant le code d'un panier "e-commerce". (voir code ci dessous) mais malheureusement tout ne marche pas complétement qu'est ce qui cloche...
<?php
session_start();
//init des variables
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";//init de ajoutPanier si non déclaré
else $ajoutPanier=$_GET['ajoutPanier'];
if(!isset($_GET['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré
else $modifPanier=$_GET['modifPanier'];
if(!isset($_GET['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré
else $suppPanier=$_GET['suppPanier'];
if(!isset($_GET['enregistreCommande'])) $enregistreCommande="";//init de enregistreCommande si non déclaré
else $enregistreCommande=$_GET['enregistreCommande'];
if ((!isset($_SESSION['liste']))&&($ajoutPanier=="")) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE
if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];//recup de la liste de la session
?>
<?php require_once('../Connections/ConnexionBoutiquemx.php'); ?>
<?php
mysql_select_db($database_ConnexionBoutiquemx, $ConnexionBoutiquemx);
//----------------------------------------------------AJOUT PANIER
if ($ajoutPanier=="AJOUTER")
{
$reference=$_GET['reference'];
$nb=1; //par défaut la quantité est = 1
$prix=$_GET['prix'];
$liste[]=array($reference,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
//ajoute un article à la liste
}
//----------------------------------------------------MODIF PANIER
if ($modifPanier=="ACTUALISER")
{
for ($i=0;$i<count($liste);$i++)
{
$nbi='nb'.$i;
$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
$liste[$i][3]=$liste[$i][1]*$liste[$i][2];//prixArticle=nbre*prixUnitaire
}
$_SESSION['liste']=$liste;//mAj de la liste
}
//----------------------------------------------------SUPP PANIER
if ($suppPanier=="SUPPRIMER")
{
$article=$_GET['article'];
for ($i=0;$i<count($liste);$i++)
{
if($article==$liste[$i][0])
array_splice($liste,$i,1);
//suppression de l'article
}
$_SESSION['liste']=$liste;//mAj de la liste
}
//----------------------------------------------------COMMANDER
if ($enregistreCommande=="COMMANDER")
{
if(!isset($_GET['action']))
$_SESSION['action']="ENREGISTRER";//mémorise l'action
header("Location: commande.php");
}
?>
<html>
<head>
<title>Boutique MX by phpmx.com</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>
<body>
<div align="center">
<p><img src="../images/bandeauPublic.gif" width="650" height="100" border="0" usemap="#Map">
</p>

<map name="Map">
<area shape="rect" coords="22,65,166,93" href="../public/catalogue.php">
<area shape="rect" coords="190,67,293,94" href="../public/panier.php">
<area shape="rect" coords="325,68,478,94" href="../public/commande.php">
<area shape="rect" coords="524,66,621,96" href="../administrateur/index.php">
</map>

</div>


<table width="100%" border="0" cellspacing="0">
<tr>
<td><p align="center"><strong><font color="#FF0000" size="6" face="Arial, Helvetica, sans-serif">PANIER</font></strong></p>

<?php if($liste[0][0]!="VIDE") { ?> <form action="../public/panier.php" method="get" >
<table width="650" border="1" align="center" cellspacing="0" bordercolor="#FF0000">
<tr>
<td><table width="650" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Titre</font></strong></font></div></td>
<td width="75"> <div align="center"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Quantit&eacute;</font></strong></font></div></td>
<td width="120"> <div align="center"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Prix</font></strong></font></div></td>
<td width="44"> <div align="center"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Supp</font></strong></font></div></td>
</tr>
<?php
$total=0.00;
for ($i=0;$i<count($liste);$i++)
{
$query_rsPanier="select * from articles where reference = '".$liste[$i][0]."'";
//echo $query_rsPanier;
$rsPanier = mysql_query($query_rsPanier, $ConnexionBoutiquemx) or die(mysql_error());
$row_rsPanier = mysql_fetch_assoc($rsPanier);
?>
<tr>
<td width="47" rowspan="2">&nbsp;</td>
<td width="364" align="left" valign="top"><span class="soustitrebold"><?php echo $row_rsPanier['nom_produit'] ?></span></td>
<td rowspan="2" align="center" valign="top"><div align="center">
<select name="nb<?php echo $i ?>" id="nb">
<option value="1" selected <?php if($liste[$i][1]==1) echo "SELECTED"; ?>>1</option>
<option value="2" <?php if($liste[$i][1]==2) echo "SELECTED"; ?>>2</option>
<option value="3" <?php if($liste[$i][1]==3) echo "SELECTED"; ?>>3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div></td>
<td rowspan="2" align="center" valign="top"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $row_rsPanier['prix'] ?></font></div></td>
<td rowspan="2"><div align="center"><a href="panier.php?suppPanier=SUPPRIMER&article=<?php echo $row_rsPanier['reference'] ?>"><img src="../images/Next.gif" width="14" height="13" border="0"></a></div></td>
</tr>
<tr>
<td width="364" align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $row_rsPanier['texte'] ?></font></td>
</tr>
<?php

$total+=$row_rsPanier['prix'] * $liste[$i][1];
}
$_SESSION['total']=$total;//mAj du total dans la session

?>
<tr>
<td colspan="2" ><div align="center"></div></td>
<td ><div align="center"></div></td>
<td ><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Total
: <?php echo $total ?> Euros</strong></font></div></td>
<td ><div align="center"></div></td>
</tr>
</table></td>
</tr>
</table>
<br>
<p align="center">
<input type="submit" name="modifPanier" value="ACTUALISER">
<input name="enregistreCommande" type="Submit" value="COMMANDER">
</p>
</form>
<?php } else { ?>
<p align="center"><strong><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Votre panier est vide</font></strong></p>

<?php }?> </td>
</tr>
</table>
<p align="center"><img src="../images/BarreBasPublic.gif"></p>
</div>
</body>
</html>
caporga
zebden
le 12/09/2007 à 17:22
zebden
bonne question ^_^

Sois plus explicite, dis nous ce qui fonctionne pas. Une erreur, quelque chose en plus ? En gros qu'est ce qui ne fonctionne pas ?

Ton code fait 162 lignes, on va pas s'amuser à le décortiquer pour pas grand chose.
zebdinou pour les intimes / Blog : http://www.zebden.fr
caporga
le 12/09/2007 à 17:30
caporga
Ce qui ne fonctionne pas c'est :
1°) lorsqu'on clic pour la première fois, deux ligne d'article s'inscrivent automatiquement u lieu d'une,
2°) le GET ($prix=$_GET['prix'];) ne fonctionne que lorque que j'applique la variable ($prix) 'normal vous allez me dire' cependant le code utilise (<?php echo $row_rsPanier['nom_produit'] ?> ) et rend inactif le tableau.
3°) le bouton actualisé ne fonctionne pas
4°) le bouton supprimer ne fonctionne pas
5°) le calcule du prix ne fonctionne pas

en gros seul l'espace session fonctionne...

désolé de pas pourvoir vous en dire plus...
cap
caporga
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours