Panier d'achat

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Panier d'achat

par Ultim4T0m » 07 déc. 2006, 22:11

Ton input fait partie d'un formulaire, il passe donc les données que tu entre dans ce formulaire à la page de destination, en l'occurrence panier3.php

Ton <input type="image" .... /> n'est autre qu'un bouton de validation du formulaire.

C'est dans cette page qu'il te faut appeller la fonction.

Tu peux déjà faire des echo() pour vérifier si les données sont bien transmises.


Si ce n'est toujours pas ça le problème, alors je n'ai définitvement pas compris ^^' Peut-être qu'en te tournant vers du Javascript, tu arriverais à ce que tu veux, avec un attribut onClick="" sur ton bouton de validation :roll:

On va y arrivver

par stefane321 » 07 déc. 2006, 22:04

Ben on approche mais j'ai le même problème qu'au départ.

Mon bouton "Ajouter au panier"
echo "<td align=\"right\" colspan=\"2\"><input type=\"image\" src=\"images/panier.jpg\" name=\"ajout_panier\" value=\"Ajouter\"></td>\n";
Il fait comment pour appeler:
ajout($_POST['id_produit'], $_POST['format']);
Je mets ça dans son attribut NAME="" ou VALUE="" ?????????

par Ultim4T0m » 07 déc. 2006, 21:55

Donc tout fonctionne si je comprends bien :roll:

Pour ce qui est de la fonction, tu dois pouvoir faire quelque chose de ce style :
<?
function ajout($id_produit, $format)
{
    array_push($_SESSION['panier']['id_produit'],$id_produit);
    array_push($_SESSION['panier']['format'],$format);
}
?> 
Et remplacer :
/* Ici, on sait que le panier existe, donc on ajoute l'article dedans. */
array_push($_SESSION['panier']['id_produit'],$_POST['id_produit']);
array_push($_SESSION['panier']['format'],$_POST['format']);
par
include 'fichier_contenant_la_fonction.php';
ajout($_POST['id_produit'], $_POST['format']);

En espérant avoir compris ton problème

Explication

par stefane321 » 07 déc. 2006, 21:51

La fonction n'est pas dans le même fichier.

Le catalogue = produits.php

Le panier = panier3.php

L'ajout des articles fonctionne mais je veux faire comme dans le tutoriel cité dans mon premier post.

Je veux en faire une fonction.

La variable $select oublie ça j'ai oublié de l'effacer.

Sais-tu de quel tuto je te parle?

par Ultim4T0m » 07 déc. 2006, 21:35

Tu n'as apparement pas besoin de l'appeller puisqu'elle se trouve déjà dans panier3.php, en fin de script.

De plus, elle ne se sert même pas de la variable $select qu'elle a en paramètre :?

Qu'est ce qui ne marche pas, concrètement ? L'ajout d'article dans le panier ? Il m'a l'air indépendant de ta fonction, même si tu pourrais éventuellement en faire une fonction sans trop de problème.


Petite remarque, en php, le signe différent ne se note pas <> mais !=

Mon code

par stefane321 » 07 déc. 2006, 21:30

Alors, voici le code de mon catalogue:
echo "<form action=\"panier3.php\" method=\"post\">\n";
	echo "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n";
	echo "<tr>\n";
	echo "<td width=\"65\" valign=\"top\" rowspan=\"3\">\n";
	if($products["image"]<>"")
	{
	echo "<img src=\"produits/img_prod/".$products["image"]."\" alt=\"".StripSlashes($products["nom"])."\" border=\"0\" width='".$newwidth[0]."' height='".$newwidth[1]."'></a>\n";
	}
	echo "</td>\n";
	echo "<td rowspan=\"3\" valign=\"top\"><IMG SRC=\"images/vertical_orange.jpg\" WIDTH=\"7\" HEIGHT=\"78\" BORDER=0 ALT=\"\"></td>\n";
	echo "<td valign=\"top\" colspan=\"2\" width=\"100%\">\n";
////////////////////////////////////////////////////////
	echo "<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">\n";
	echo "<tr>\n";
	echo "<td><b class=\"titre\"><input type=\"hidden\" name=\"id_produit\" value=\"".$products["id"]."\">".htmlentities(StripSlashes($products["nom"]))."</b></td>\n";
	echo "</tr>\n";
	if($products["description"]<>"")
	{
	echo "<tr>\n";
	echo "<td valign=\"top\" width=\"200\">".StripSlashes($products["description"])."</td>\n";
	echo "</tr>\n";
	}
	echo "</table>\n";
////////////////////////////////////////////////////////
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td valign=\"top\">Prix:</td>\n";
echo "<td>\n";
////////////////////////////////////////////////////////
$sql2 = "select * from produit_format order by id ASC ";
$result2 = mysql_query($sql2);
echo "<table cellpadding=\"0\" width=\"100%\" cellspacing=\"0\">\n";
while( $row = mysql_fetch_array($result2))
 {	
	echo "<tr>\n";
	echo "<td>".$row["nom"]."</td><td>".$row["prix"]." $</td><td align=\"right\"><input type=\"radio\" name=\"format\" value=\"".$row["id"]."\"></td>\n";
	echo "</tr>\n";
 }
echo "</table>\n";
////////////////////////////////////////////////////////
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align=\"right\" colspan=\"2\"><input type=\"image\" src=\"images/panier.jpg\" name=\"ajout_panier\" value=\"Ajouter\"></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</form>\n";
Voici le code de panier qui fonctionne de panier3.php:
<?php
/* Démarrage ou prolongation de la session */
session_start();

/* On vérifie l'existence du panier, sinon, on le crée */
if(!isset($_SESSION['panier']))
{
    /* Initialisation du panier */
    $_SESSION['panier'] = array();
    /* Subdivision du panier */
	$_SESSION['panier']['id_produit'] = array();
    $_SESSION['panier']['format'] = array();
}

/* Ici, on sait que le panier existe, donc on ajoute l'article dedans. */
array_push($_SESSION['panier']['id_produit'],$_POST['id_produit']);
array_push($_SESSION['panier']['format'],$_POST['format']);
?>
Voici la fonction que je ne sais pas comment appeler:
<?
function ajout($select)
{
    array_push($_SESSION['panier']['id_produit'],$_POST['id_produit']);
    array_push($_SESSION['panier']['format'],$_POST['format']);
}
?>
Merci!

par Ultim4T0m » 07 déc. 2006, 21:07

C'est limité là en code, montre nous où ça va, quel est ton formulaire, le code qui est censé s'exécuter pour appeller la fonction ajout() etc.

Panier d'achat

par stefane321 » 07 déc. 2006, 21:03

Bonjour,

J'utilise le tuto :

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

Au départ, J'ai mon catalogue de produit qui est fait et qui fonctionne bien.

Je comprend le tuto et j'arrive à certains résultats jusqu'a se que j'utilise les fonctions.

C'est ma GROSSE lacune en php, l'utilisation de "fonction utilisateur".

Comment je dois appeler la fonction ajout($select) à partir d'un bouton image?
echo "<td align=\"right\" colspan=\"2\"><input type=\"image\" src=\"images/panier.jpg\" name=\"ajout_panier\" value=\"Ajouter\"></td>\n";
Merci!

Stéphane