|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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 du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|