Creation panier virtuel

Eléphant du PHP | 119 Messages

14 juin 2006, 10:41

Bonjour,

je souhaite creer un panier virtuel afin de pouvoir y mettre des produits.

Dans mon catalogue, j'ai donc fait un lien du type
<a href="<?php echo $_SERVER["PHP_SELF"].'?achat='.$req1['pro_id']; ?>"<img src="Templates/Images/gif/panier-petit.gif" />
ainsi donc je recupere le lien vers la fiche produit. en le surlignant je vois biendans la barre d'etat l'id du produit qui apparait.

seulement je souhaiterai garder le lien cliqué dans une variable de session qui comporterait dans un array une liste d'id cliqué afin de pouvoir les ressortir dans ma page panier.php

je bloque sur le fait d'enregistrer dans la variable de session l'id du produit sur lequel le client a cliqué.

pour le moment j'ai fait ca

$_SESSION['panier'] = array($_SERVER["PHP_SELF"].'?achat='.$req1['pro_id']);

mais cela ne fonctionne pas :cry: :cry: :cry:

est ce que quelqu'un pourrait m'aider
merci beaucoup

Eléphant du PHP | 119 Messages

14 juin 2006, 10:50

bien entendu j'ai mon session_start() au debut de chaque page et avant tout code html :wink: :wink:

Mammouth du PHP | 1511 Messages

14 juin 2006, 10:52

Deja il manques quelques petites choses au niveau de ton lien, et ensuite, je pense que tu devrais nous donner les erreurs qui t'ont étées renvoyées par php :)
@+

Eléphant du PHP | 119 Messages

14 juin 2006, 10:55

il ne me met pas d'erreur mais il ne me rajoute rien dans ma variable de session car quand je fais un echo de $_SESSION['panier'] il me met Array

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 juin 2006, 11:06

azerty53 a écrit:
il ne me met pas d'erreur mais il ne me rajoute rien dans ma variable de session car quand je fais un echo de $_SESSION['panier'] il me met Array
Ce n'est pas echo qui doit afficher un Array (tableau) c'est Print_r qu'il faut ou alors il faut parcourir ton panier par une boucle et faire l'echo de son contenu
_________________

Faudra penser à la structure du panier dans la session, un truc simple conciste à voir le panier comme une liste de produits qui contient des quantités achetées :

Une suggestion :
Dans le catalogue, t'as ton lien d'achat:
<A href="<?php echo 'panier.php?achat='.$req1['pro_id']; ?>"><img src="Templates/Images/gif/panier-petit.gif" /> </A>	
Et dans la page "panier.php" appelée par le lien en lui passant le paramètre 'achat' qui est l'id du produit acheté :
<?php
session_start();

//Gérer l'achat
if ($_GET["achat"]){
    $id = $_GET["achat"];
    $_SESSION['panier']["$id"] = 1; //un produit = une quantité (par défaut 1)
    //Cette technique te permet de ne pas ajouter un id produit 2 fois dans ton panier et de modifier la quantité d'un produit acheté en accèdant par $id
}

//Afficher le panier (pour le test)
echo "<pre>";
print_r($_SESSION['panier']);
echo "</pre>";
?>
Modifié en dernier par sadeq le 14 juin 2006, 11:14, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 119 Messages

14 juin 2006, 11:12

tien je ne connaissais pas le print_r :oops:

d'accord donc dans ce cas la je vois bien ca marche seulement il me permet de gerer qu'un seul produit car il ecrase a chaque fois donc faudrait que je fasse un increment de la variable de session à chaque fois ??

Eléphant du PHP | 119 Messages

14 juin 2006, 11:25

j'ai trouvé un bon tuto pour ceux qui ont des problemes avec les paniers


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

merci beaucoup pour votre aide

Eléphant du PHP | 119 Messages

15 juin 2006, 14:56

depuis hier soir (cad depsuis que j'ai trouvé le tuto sur le forum) je rame je suis completement paumé.

j'ai crée mes fonctions comme le dit le tuto.
par exemple la fonction ajouter de la page fonctionpanier.php
function ajout($select)
{
	$ajout = false;
	if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verouille'] == false)
	{
		if (!verif_panier($select['id']))
		{
			array_push ($_SESSION['panier']['id_produit'],$select['id']);
			array_push ($_SESSION['panier']['qte'],$select['qte']);
		}
		else
		{
			modif_qte($select['id'],$select['qte']);
		}
	}
	return $ajout;
}
j'ai aussi mis dans mon catalogue.php sur le bouton d'ajout
$verifications = verif_panier($present);
					if($verifications == false)
					{?>
						<img src="Templates/Images/gif/panier-petit.gif" />
					<?php
					} else {?>		
						<img src="Templates/Images/gif/retirer_panier.gif" />
					<?php
						   }
					?>
mais je ne sais pas trop comment faire pour que quand je clique sur le bouton il appele la fonction ajouter et me met l'id dans mon array de ma variable de session.

je pense qu'une fois que j'aurais compris ca ca ira tout seul

est ce que quelqu'un peut m'aider a bien comprendre comment faire ca :oops: :oops:

merci beaucoup de votre aide !

;)

Eléphant du PHP | 119 Messages

15 juin 2006, 15:14

mince j'ai une erreur mais je trouve pas d'explication vu que ca fonctionnait tres bien avant
Warning: array_search() [function.array-search]: Wrong datatype for second argument in D:\wamp\www\Dcp\Client\fonctionpanier.php on line 40
voila la fonction la ligne 40 etant le array search
function verif_panier($ref_produit)
{
	// Initialisation de la variable a false
	$present = false;
	// On teste la presence ou non de la ref dans le array
	if (array_search($ref_produit,$_SESSION['panier']['id_produit']) != false)
	{
		$present = true;
	}
	return $present;
}
:cry: :cry: :cry: :cry:

et les lignes du catalogue qui appelent la fontion
<?php
					$verifications = verif_panier($present);
					if($verifications == false)
					{?>
						<img src="Templates/Images/gif/panier-petit.gif" />
					<?php
					} else {?>		
						<img src="Templates/Images/gif/retirer_panier.gif" />
					<?php
						   }
					?>

Eléphant du PHP | 140 Messages

15 juin 2006, 15:16

$_SESSION['panier']['id_produit']) != false)
Et que vaut cette variable ?

Eléphant du PHP | 119 Messages

15 juin 2006, 15:32

cette variable me sert a comparer la ref des article a l'article a verifier mais quand je vais un echo ou un print_r de la variable j'obtient rien

Eléphant du PHP | 119 Messages

15 juin 2006, 15:35

pour le deuxieme probleme la solution etait de verifier que le panier n'etais pas vide et comme il l'etais ca fonctionnais pas mais je reste bloqué sur le fait d'appeler la fonction qui rajoute des produits au panier :cry: :cry: