Page 1 sur 1

Panier d'achat

Posté : 14 févr. 2007, 21:26
par stefane321
J'utilise le tutoriel :

http://jmolline.free.fr/tutos/tuto_panier.html

Mon problème est dans la conception de la page de catalogue.

De la façon dont j'ai compris et fait la chose tous les produits contenu dans ma page s'ajote au cataogue sans même que j'ai cliqué sur "ajouter ".

Donc, j'ai mal compris et mal fait ! :oops:

Pouvez-vous m'aider svp?

Merci!
<?
session_start();
include("header.php");
include("fonctions_panier.php");
if(isset($_GET["categorie_id"]))
	{
	$_SESSION["categorie_id"]=$_GET["categorie_id"];	
	$_SESSION["categorie_id_retour"]=$_GET["categorie_id"];	
	}	
include("config.php");
$connect=mysql_connect($host,$login,$password) or die("3333333");
$select=mysql_select_db($db) or die("Sa chie");
$sql = "select * from produits where categorie_id='".$_SESSION["categorie_id"]."' order by id ASC";
$result = mysql_query($sql) or die($sql);
?>
<form action="produits.php" method="post">
<?
while( $select = mysql_fetch_array($result) )
 {
 $newwidth=resize_images(120, 120, "$url_racine/produits/img_prod/".$select["image"]."");
?>
	<table width="100%" align="center">
	<tr>
	<td><b class="titre"><? echo StripSlashes($select["nom_".$_SESSION["lang"].""]) ?></b></td>
	</tr>
	<tr>
	<td valign="top" width="200"><p align="justify">
	<?	if($select["description_".$_SESSION["lang"].""]<>""){	echo "".StripSlashes($select["description_".$_SESSION["lang"].""])."";} ?>
	</p></td>
	</tr>
	<tr>
	<td>Quantité:&nbsp;<input type="text" name="qte" size="2"></td>
	</tr>
	<tr>
	<td valign="top"><b>&nbsp;Prix:</b><? echo $select["prix"] ; ?>&nbsp;$</td>
	</tr>
	<tr>
	<td><input type="submit" name="ajout" value="Ajouter" onClick="<? ajout($select) ; ?>"></td>
	</tr>
	</table>
<?
}
?>
</form>
<? include("footer.php"); ?>

Posté : 15 févr. 2007, 17:23
par Ryle
Tu mélanges php et javascript... La fonction ajout() de ton panier est en php et doit s'exécuter sur le serveur lors de la récupération des produits sélectionnés par l'utilisateur. L'action onClic est un événement html/javascript qui s'exécute uniquement dans le navigateur.

Le php étant exécuté sur le serveur, tout le code php est traité et génère le code html qui sera affiché. Ainsi l'appel à ta fonction ajout() se fait pendant la génération de la page.
Comme le $select que tu lui passe en paramètre correspond à l'ensemble des produits de ta catégorie en base, il te les ajoutes tous dans le panier au lieu de ne prendre en compte que des produits selectionné par l'utilisateur :)

Ok!!!

Posté : 16 févr. 2007, 17:01
par stefane321
Donc, Est-ce que sa veut dire que les fonctions de panier du tutoriel je dois les mettre dans des conditions
if(isset($_POST["submit_ajout"]))
{
function ajout($select)
{
    $ajout = false;
    if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false)
    {
        if(!verif_panier($select['id']))
        {
            array_push($_SESSION['panier']['id_article'],$select['id']);
         	array_push($_SESSION['panier']['qte'],$select['qte']);
            /*array_push($_SESSION['panier']['taille'],$select['taille']);
            array_push($_SESSION['panier']['prix'],$select['prix']);*/
            $ajout = true;
        }
        else
        {
            $ajout = modif_qte($select['id'],$select['qte']);
        }
    }
    return $ajout;
}

}
Aussi, si je fais ça je devrai remplacer tout les $select par $_POST

???????????

Merci!

Posté : 16 févr. 2007, 17:23
par Ryle
non, du tout, ce que je veux dire, c'est que ton onClick (javascript) ne peut interagir avec ta fonction ajout() (php) :)

"$select" est le nom donné au paramètre de ta fonction, mais tu peux lui passer n'importe quelle donnée, c'est juste qu'à l'intérieur de la fonction, ces données seront stockées dans la variable "$select". Si les données que tu as besoin de lui passer se trouvent dans $_POST, alors il te suffirait de l'appeler en lui passant ce paramètre :
$resultat = ajout($_POST);


En résumé il te faut :
- que l'utilisateur sélectionne articles et quantités en remplissant, cochant, etc. le formulaire
- que l'utilisateur valide le formulaire en cliquant sur le bouton pour envoyer les données au serveur
- que tu récupères en php les données envoyées par le formulaire
- que tu mettes à jour la session en ajoutant ces données :)