Accueil > > > FONCTION CADDIE : AJOUTER/MODIFIER/SUPPRIMER DES ÉLÉMENTS
FONCTION CADDIE : AJOUTER/MODIFIER/SUPPRIMER DES ÉLÉMENTS
Information sur la source
Description
Un caddie est un espèce de 'panier' dans lequel ont peut soit ajouter un produit, modificer la quantité de ce produit ou bien supprmier ce produit. Je sais qu'un script de ce genre éxiste déja mais j'ai essayé de l'utiliser et il ne fonctionnait pas. Alors j'ai codé un caddie moi-même qui fonctionne parfaitement. Le principe est toujours le même, on stockes les produits ainsi que leurs quantités respectives dans un tableau (array) et qui à son tour est stocké dans une variable de session. Le tout est composé de 3 fichier qui servent à ajouter un produits(caddie_add.php), modifier une quantité(caddie_update.php) et supprimer un produit(caddie_del.php).
Source
- <?php
- // caddie_add.php... sert à ajouter un produit...
- session_start();
- if(isset($_GET['prod']) && isset($_GET['qtte']))
- {
- // si on a spécifié un produit anisi qu'une quantité :
- // on vérifie si un panier existe déja...
-
- if(session_is_registered('panier') && is_array($panier))
- {
-
- // si le panier existe déja...
- $nbprod = count($panier);
- // on compte le nombre d'éléments dans le panier...
- for($i=0;$i<$nbprod;$i++)
- {
- // on fait une boucle qui va passer en revue chaque produit du panier
- // pour voir si le produit que l'on veut rajouter existe déja
- if($panier[$i]['prod'] == $_GET['prod'])
- {
- // le produit existe...
- $prodin = "true";
- // inscrit dans une variable que le produit existe...
- $prodline = $i;
- // et on précise aussi quel est son emplacment dans le caddie
- }
- }
- if(isset($prodin) && $prodin == "true")
- {
- // si le produit existe déja...
- // ...la quantité précédente est effacée...
- array_splice($panier,$prodline,1);
- // ...pour laisser place à celle qui le client vient de rajouter...
- array_push($panier,array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']));
- }
- else
- {
- // sinon on rajoute le produit dans le panier tt simplement...
- array_push($panier,array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']));
- }
- header("Location: prof_commandes.php");
- // on peut faire une redirection vers une page qui va faire la liste de tous les produits...
- }
- else
- {
- // si le panier n'existe pas...
- session_register('panier');
- // on le créer...
- $panier = array ();
- // on rajoute le produit et la quantité...
- array_push($panier,array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']));
- // le panier à été crée...
- header("Location: caddie_list.php");
- // on peut faire une redirection vers une page qui va faire la liste de tous les produits...
- }
- }
- else
- {
- // les variable prod et qtte n'existent pas...
- header("Location: caddie_list.php");
- }
- ?>
- ####################
- <?php
- // panier_update.php... ...sert à modifier la quantité d'un produit...
- session_start();
-
- if(isset($_GET['prod']) && isset($_GET['qtte']))
- {
- // on vérifie qu'un produit et une 'nouvelle' quantité ont été spécifés...
- // si oui,
- if($_GET['qtte'] != 0)
- {
- // si la 'nouvelle' quantité est différente de zéro....
- $nbprod = count($panier);
- for($i=0;$i<$nbprod;$i++)
- {
- // on fait une boucle qui passe en revue chaque élément du panier...
- if ($panier[$i]['prod'] == $_GET['prod'])
- {
- // lorsque l'on tombe sur le produit à modifier,
- // on donne la valeur de la 'nouvelle' quantité à la quantité du produit dan sle panier...
- $panier[$i] = array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']);
- }
- }
- }
- else
- {
- // si la 'nouvelle' quantité est égale à 0, ca revient au même que de supprimer...
- $nbprod = count($panier);
- for($i=0;$i<$nbprod;$i++)
- {
- // on fait une boucle qui passe en rebue tout le panier...
- if($panier[$i]['prod'] == $_GET['prod'])
- {
- // dès qu'on tombe sur la valeur à 'modifier'(ici en l'occurence il s'agit de supprmier ..)
- array_splice($panier,$i,1);
- }
- }
- }
- header("Location: caddie_list.php");
- // on redirige le client vers une page avec la liste de produits...
- }
- ?>
- ############################
- <?php
- // caddie_del.php... ...sert à supprimer un élément du caddie...
- session_start();
-
- if(isset($_GET['prod']))
- {
- // si un produit ets spécifié.;;
- $nbprod = count($panier);
- for($i=0;$i<$nbprod;$i++)
- {
- // on fait une boucle qui parcours le panier...
- if($panier[$i]['prod'] == $_GET['prod'])
- {
- // une fois arrivé au produit voulu, on le supprime...
- array_splice($panier,$i,1);
- }
- }
- header("Location: caddie_list.php");
- // on redirige le client vers une page qui liste les produits & les quantités...
- }
- ?>
- ############################
- // caddie_list.php ...sert à lister les produits du caddie
- if(session_is_registered('panier'))
- {
- if(is_array($panier))
- {
- $nbart = count($panier);
- if($nbart == 0)
- {
- echo "Votre panier est vide.<br>\n";
- }
- else
- {
- echo "Il y a des articles dans votre panier.<br><br>\n";
- echo "<table width=\"90%\" cellpadding=\"3\" align=\"center\" border=\"0\" cellspacing=\"0\"><tr bgcolor=\"#AE888C\"><td height=\"23\" align=\"center\" class=normalprof height=\"37\"><strong><font color=\"#FFFFFF\">Marques</font></strong></td><td align=\"center\" class=normalprof><strong><font color=\"#FFFFFF\">Nom du produit</font></strong></td><td align=\"center\" class=normalprof><strong><font color=\"#FFFFFF\">Quantité</font></strong></td><td align=\"center\" class=normalprof><strong><font color=\"#FFFFFF\">Modification</font></strong></td></tr>";
- for($i=0;$i<$nbart;$i++)
- {
- if(is_array($panier[$i]))
- {
- mysql_select_db($database_mysql_connect,$mysql_connect) or die(mysql_error());
- $getprodinfo = mysql_query("SELECT idproduit, marque, nom, prix, promoexiste, promotype, promored, promodatedebut, promodatefin FROM produits_tbl WHERE idproduit = '".$panier[$i]['prod']."'", $mysql_connect) or die(mysql_error());
- while($row_getprodinfo = mysql_fetch_array($getprodinfo,MYSQL_ASSOC))
- {
- $getmarque = mysql_query("SELECT marque FROM idmarques_tbl WHERE idmarque = '".$row_getprodinfo['marque']."'");
- $row_getmarque = mysql_fetch_assoc($getmarque);
- echo "<tr bgcolor=\"#FFFFFF\"><td align=\"center\" style=\"BORDER-BOTTOM: #AE888C 1px solid ; BORDER-LEFT: #AE888C 1px solid\" height=\"23\" class=normalprof>\n";
- echo "<form name=\"panier_update_form".$i."\" method=\"get\" action=\"prof_panier_update.php\">\n";
- echo $row_getmarque['marque']."</td><td align=\"center\" style=\"BORDER-BOTTOM: #AE888C 1px solid\" class=normalprof>".$row_getprodinfo['nom']."</td><td align=\"center\" style=\"BORDER-BOTTOM: #AE888C 1px solid\" class=normalprof> <input type=\"hidden\" name=\"prod\" value=\"".$panier[$i]['prod']."\">\n<input type=\"text\" size=\"2\" name=\"qtte\" value=\"".$panier[$i]['qtte']."\"> </td><td style=\"BORDER-BOTTOM: #AE888C 1px solid ; BORDER-RIGHT: #AE888C 1px solid\" class=normalprof align=\"center\" valign=\"bottom\"><a href=\"prof_panier_del.php?prod=".$panier[$i]['prod']."\">Retirer</a> || <a href=\"javascript:document.panier_update_form".$i.".submit()\">Modifier</a></form>\n</td></tr>";
- echo "</td></tr>";
- }
- }
- }
- mysql_free_result($getprodinfo);
- echo "</table>";
- }
- echo "<div align=\"center\"><a href=\"prof_commandes_confirm.php\"><strong>Valider le panier</strong></a></div>";
- echo "<br><a href=\"prof_panier_clear.php\">Supprimer tous les produits du panier</a>";
- }
- else
- {
- echo "Votre panier est vide.<br>\n";
- }
- }
- else
- {
- echo "Votre panier est vide.<br>\n";
- }
- if(session_is_registered('continueachat'))
- {
- printf("<a href=\"%s\"Voir le dernier produit ajouté au caddie </a>",$continueachat);
- }
- else
- {
- echo "<br><a href=\"prof_marques.php\">? Nos marques</a><br><a href=\"prof_produits.php\">? Nos produits</a>";
- }
<?php
// caddie_add.php... sert à ajouter un produit...
session_start();
if(isset($_GET['prod']) && isset($_GET['qtte']))
{
// si on a spécifié un produit anisi qu'une quantité :
// on vérifie si un panier existe déja...
if(session_is_registered('panier') && is_array($panier))
{
// si le panier existe déja...
$nbprod = count($panier);
// on compte le nombre d'éléments dans le panier...
for($i=0;$i<$nbprod;$i++)
{
// on fait une boucle qui va passer en revue chaque produit du panier
// pour voir si le produit que l'on veut rajouter existe déja
if($panier[$i]['prod'] == $_GET['prod'])
{
// le produit existe...
$prodin = "true";
// inscrit dans une variable que le produit existe...
$prodline = $i;
// et on précise aussi quel est son emplacment dans le caddie
}
}
if(isset($prodin) && $prodin == "true")
{
// si le produit existe déja...
// ...la quantité précédente est effacée...
array_splice($panier,$prodline,1);
// ...pour laisser place à celle qui le client vient de rajouter...
array_push($panier,array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']));
}
else
{
// sinon on rajoute le produit dans le panier tt simplement...
array_push($panier,array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']));
}
header("Location: prof_commandes.php");
// on peut faire une redirection vers une page qui va faire la liste de tous les produits...
}
else
{
// si le panier n'existe pas...
session_register('panier');
// on le créer...
$panier = array ();
// on rajoute le produit et la quantité...
array_push($panier,array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']));
// le panier à été crée...
header("Location: caddie_list.php");
// on peut faire une redirection vers une page qui va faire la liste de tous les produits...
}
}
else
{
// les variable prod et qtte n'existent pas...
header("Location: caddie_list.php");
}
?>
####################
<?php
// panier_update.php... ...sert à modifier la quantité d'un produit...
session_start();
if(isset($_GET['prod']) && isset($_GET['qtte']))
{
// on vérifie qu'un produit et une 'nouvelle' quantité ont été spécifés...
// si oui,
if($_GET['qtte'] != 0)
{
// si la 'nouvelle' quantité est différente de zéro....
$nbprod = count($panier);
for($i=0;$i<$nbprod;$i++)
{
// on fait une boucle qui passe en revue chaque élément du panier...
if ($panier[$i]['prod'] == $_GET['prod'])
{
// lorsque l'on tombe sur le produit à modifier,
// on donne la valeur de la 'nouvelle' quantité à la quantité du produit dan sle panier...
$panier[$i] = array("prod" => $_GET['prod'],"qtte" => $_GET['qtte']);
}
}
}
else
{
// si la 'nouvelle' quantité est égale à 0, ca revient au même que de supprimer...
$nbprod = count($panier);
for($i=0;$i<$nbprod;$i++)
{
// on fait une boucle qui passe en rebue tout le panier...
if($panier[$i]['prod'] == $_GET['prod'])
{
// dès qu'on tombe sur la valeur à 'modifier'(ici en l'occurence il s'agit de supprmier ..)
array_splice($panier,$i,1);
}
}
}
header("Location: caddie_list.php");
// on redirige le client vers une page avec la liste de produits...
}
?>
############################
<?php
// caddie_del.php... ...sert à supprimer un élément du caddie...
session_start();
if(isset($_GET['prod']))
{
// si un produit ets spécifié.;;
$nbprod = count($panier);
for($i=0;$i<$nbprod;$i++)
{
// on fait une boucle qui parcours le panier...
if($panier[$i]['prod'] == $_GET['prod'])
{
// une fois arrivé au produit voulu, on le supprime...
array_splice($panier,$i,1);
}
}
header("Location: caddie_list.php");
// on redirige le client vers une page qui liste les produits & les quantités...
}
?>
############################
// caddie_list.php ...sert à lister les produits du caddie
if(session_is_registered('panier'))
{
if(is_array($panier))
{
$nbart = count($panier);
if($nbart == 0)
{
echo "Votre panier est vide.<br>\n";
}
else
{
echo "Il y a des articles dans votre panier.<br><br>\n";
echo "<table width=\"90%\" cellpadding=\"3\" align=\"center\" border=\"0\" cellspacing=\"0\"><tr bgcolor=\"#AE888C\"><td height=\"23\" align=\"center\" class=normalprof height=\"37\"><strong><font color=\"#FFFFFF\">Marques</font></strong></td><td align=\"center\" class=normalprof><strong><font color=\"#FFFFFF\">Nom du produit</font></strong></td><td align=\"center\" class=normalprof><strong><font color=\"#FFFFFF\">Quantité</font></strong></td><td align=\"center\" class=normalprof><strong><font color=\"#FFFFFF\">Modification</font></strong></td></tr>";
for($i=0;$i<$nbart;$i++)
{
if(is_array($panier[$i]))
{
mysql_select_db($database_mysql_connect,$mysql_connect) or die(mysql_error());
$getprodinfo = mysql_query("SELECT idproduit, marque, nom, prix, promoexiste, promotype, promored, promodatedebut, promodatefin FROM produits_tbl WHERE idproduit = '".$panier[$i]['prod']."'", $mysql_connect) or die(mysql_error());
while($row_getprodinfo = mysql_fetch_array($getprodinfo,MYSQL_ASSOC))
{
$getmarque = mysql_query("SELECT marque FROM idmarques_tbl WHERE idmarque = '".$row_getprodinfo['marque']."'");
$row_getmarque = mysql_fetch_assoc($getmarque);
echo "<tr bgcolor=\"#FFFFFF\"><td align=\"center\" style=\"BORDER-BOTTOM: #AE888C 1px solid ; BORDER-LEFT: #AE888C 1px solid\" height=\"23\" class=normalprof>\n";
echo "<form name=\"panier_update_form".$i."\" method=\"get\" action=\"prof_panier_update.php\">\n";
echo $row_getmarque['marque']."</td><td align=\"center\" style=\"BORDER-BOTTOM: #AE888C 1px solid\" class=normalprof>".$row_getprodinfo['nom']."</td><td align=\"center\" style=\"BORDER-BOTTOM: #AE888C 1px solid\" class=normalprof> <input type=\"hidden\" name=\"prod\" value=\"".$panier[$i]['prod']."\">\n<input type=\"text\" size=\"2\" name=\"qtte\" value=\"".$panier[$i]['qtte']."\"> </td><td style=\"BORDER-BOTTOM: #AE888C 1px solid ; BORDER-RIGHT: #AE888C 1px solid\" class=normalprof align=\"center\" valign=\"bottom\"><a href=\"prof_panier_del.php?prod=".$panier[$i]['prod']."\">Retirer</a> || <a href=\"javascript:document.panier_update_form".$i.".submit()\">Modifier</a></form>\n</td></tr>";
echo "</td></tr>";
}
}
}
mysql_free_result($getprodinfo);
echo "</table>";
}
echo "<div align=\"center\"><a href=\"prof_commandes_confirm.php\"><strong>Valider le panier</strong></a></div>";
echo "<br><a href=\"prof_panier_clear.php\">Supprimer tous les produits du panier</a>";
}
else
{
echo "Votre panier est vide.<br>\n";
}
}
else
{
echo "Votre panier est vide.<br>\n";
}
if(session_is_registered('continueachat'))
{
printf("<a href=\"%s\"Voir le dernier produit ajouté au caddie </a>",$continueachat);
}
else
{
echo "<br><a href=\"prof_marques.php\">? Nos marques</a><br><a href=\"prof_produits.php\">? Nos produits</a>";
}
Conclusion
Voilà... J'avoue c'est un peu le bordel mais c'est la première que je poste :p:p Il manque une page, c'est la page qui permet de lister les produits... je vais la mettre dès que j'ai le temps (d'ici 1-2 jours)...
Sinon ben il y a pas vrmt de bugs connus, ce script est utilisé sur un site ou les clients sont demandé de se 'logguer' pour pouvoir ajouter/modifier/supprimer des éléments du panier....
Il y a aussi quelques petites fonction relatives aux session que je vais arranger (pe session_register(), sess_is_registered()....etc..). Je tiens à préciser que j'ai dévolppé ce script avec une configuration de php ou 'register_globals' était à 'on'...
Et une fois que j'aurai rajouté la 4eme page qui permet de lister le contenu du panier, je ferai un petit zip qui contiendra ces quatres fichier.
Voilà !
Rob. (24/06-2004)
PS: commentaires, questions, remarques, n'hésitez pas !
----
Voila j'ai rajouté le 4eme et dernier script...Le quatrieme script parcours le tableua qui contient les ID produits et les QTT (quantité) de produits et va chercher les description prix etc.. des produits correspondant dans une base données.
@+
Rob. (26/08/2006)
Historique
- 26 août 2006 13:24:16 :
- 26 aout 2006 => mise ajour et ajout du 4eme script !!! dslé pour le temps que ca a pris mais je pensais les avoir perdus !!
je sais pas si je pourrai vous aider car je n'ai vraiment pas beaucoup le temps..
- 26 août 2006 13:25:19 :
- 26 aout 2006 => mise ajour et ajout du 4eme script !!! dslé pour le temps que ca a pris mais je pensais les avoir perdus !!
je sais pas si je pourrai vous aider car je n'ai vraiment pas beaucoup le temps..
- 26 août 2006 13:31:27 :
- details, pas tres important !
- 12 mars 2008 20:36:14 :
- Mise à jour de la conclusion, en effet, je ne fait plus de "SAV" pour cette source !
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
actualisation du caddie ? [ par etudianto ]
Bonjour,J'ai un petit script de type caddie avec envoie des données par url vers la page panier?php.Le code du lien est le suivant :<a href="panier
probleme de suppression d'article dans un caddie [ par oceane751 ]
bonjour, je suis en train de creer un caddie virtuel et j'ai un petit probleme au niveau de la suppression d'article dans ce caddie voici le code qui
comment faire un caddie ou panier [ par ambre44 ]
bonjour,j'ai créer un site de vente de perles je suis immatricule et j'ai un bon de commande et j'aimerais avoir une fonction pour mettre dans un
E-commerce et n° de commande [ par murrigane ]
Bonjour,Je suis en train de developper une boutique en ligne, tout mon processus est mis en place et jusqu'à la validation de la commade tout est
générer un caddie [ par olivier59263 ]
BonjourN'étant un pro de la programmation, j'aimerais avoir un peu d'aide pour générer un caddie.Comment fait-on "simplement" pour ajouter un produit
probleme d'array (panier) [ par lyoan ]
Bonjour à tous, Je viens de commencer la création d'un panier et j'avoue rencontrer quelques problèmes. Voici mon code, dites moi si vous voyez des ch
panier session [ par chevaliero ]
Bonjour à tous,J'ai réalisé un carnet (caddie) de voyage pour récuperer 2 informations : ID - NOM.Cela fonctionne impeccable en lo
panier et gestion couleurs [ par titeuf974 ]
Bonjour!Voila, actuellement je dévelloppe un panier en php utilisant les sessions. Ce dernier fonctionne très bien. Ajout, suppression, modi
Variable de session qui disparait [ par ov3rdoze ]
Bonjour à tous.Je souhaiterais ajouter un système de panier sur un site. J'ai donc fait une classe panier aui à priori fonctionne.A l'arrivée sur le s
Panier : Pb de quantité [ par Fo0Zie ]
Bonjour à tous les codeurs !Voilà mon problème que j'arrive en vain à résoudre. J'utilise un panier pour un mini site de vente, il fonctionne très bie
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|