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
Erreur sur un array dans une class [ par zemele ]
Bonjour, Je viens d'installer mon site le serveur (dev local sous MAMP), et voilà que ma class ne fonctionne plus... Voici le message d'errer : "Ca
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
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|