[eCommerce] Toujours à propos du tutoriel sur la création d'un panier en PHP
Bonjour,
Tout d'abord, ce que j'aurais dû faire dans mon premier post concernant ce tutoriel : un grand merci à son auteur... Les pauvres débutants en php comme moi apprécient l'aide que cela nous apporte pour apprendre et comprendre.
Voici les autres raisons de ce post relatif aux scripts de ce tutorlel :
Dans la page fonctions-panier.php, dans la partie concernant la modification du panier au niveau de la quantité, j'ai fait une modification...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function modifierQTeArticle($libelleProduit,$qteProduit){
if (creationPanier())
{
if ($qteProduit > 0)
{
$positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);
if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
}
}
else
supprimerArticle($libelleProduit);
}
else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
} |
Il y a, à la fin
Code:
supprimerArticle($libelleProduit);
et cela supprime la ligne lorsqu'on change la quantité dans le panier au lieu "d'enregistrer" le changement de quantité. Je l'ai remplacé par :
Code:
modifierQTeArticle($libelleProduit);
ce qui me permet maintenant de changer la quantité tout en conservant la ligne de produit.
J'y ai ensuite ajouté, sans problème, le traitement de deux données supplémentaires (le nom du fournisseur et un second montant) et fais les modifications dans la page panier.php...
Mais je voudrais y faire deux autres modifications, et j'avoue que je sèche...
La première concerne les prix : j'aimerais qu'ils s'affichent dans le panier avec deux décimales et non pas une seule lorsque la deuxième décimale est un zéro (par exemple : 1.80 au lieu de 1.8 actuellement)...
et la seconde est l'ajout, dans le panier, d'une colonne comportant, ligne par ligne, le résultat de la multiplication du prix unitaire par la quantité. actuellement, je n'ai en bas du tableau que le total des différents achats, mais je n'ai pas ce résultat à chaque ligne (je ne sais pas si je m'explique bien...)
Ajouter une colonne dans panier.php, je sais faire, mais je n'arrive pas à trouver la bonne formule à mettre dans fonctions-panier.php pour arriver à faire cette simple multiplication pour envoyer vers le panier (j'suis pas douée, hein !)
Je remets ce script (avec mes ajouts) en entier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| <?php
function creationPanier(){
$ret=false;
if (isset( $_SESSION['panier']))
$ret = true;
else
{
$_SESSION['panier']=array();
$_SESSION['panier']['libelleProduit'] = array();
$_SESSION['panier']['fournisseurProduit'] = array();
$_SESSION['panier']['qteProduit'] = array();
$_SESSION['panier']['prixProduit'] = array();
$_SESSION['panier']['gainProduit'] = array();
$ret=true;
}
return $ret;
}
function ajouterArticle($libelleProduit,$fournisseurProduit,$qteProduit,$prixProduit,$gainProduit){
if (creationPanier())
{
$positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);
if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ;
}
else
{
array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit);
array_push( $_SESSION['panier']['fournisseurProduit'],$fournisseurProduit);
array_push( $_SESSION['panier']['qteProduit'],$qteProduit);
array_push( $_SESSION['panier']['prixProduit'],$prixProduit);
array_push( $_SESSION['panier']['gainProduit'],$gainProduit);
}
}
else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
function supprimerArticle($libelleProduit){
if (creationPanier())
{
$tmp=array();
$tmp['libelleProduit'] = array();
$tmp['fournisseurProduit'] = array();
$tmp['qteProduit'] = array();
$tmp['prixProduit'] = array();
$tmp['gainProduit'] = array();
for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
{
if ($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit)
{
array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
array_push( $tmp['fournisseurProduit'],$_SESSION['panier']['fournisseurProduit'][$i]);
array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]);
array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$i]);
array_push( $tmp['gainProduit'],$_SESSION['panier']['gainProduit'][$i]);
}
}
$_SESSION['panier'] = $tmp;
unset($tmp);
}
else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
function modifierQTeArticle($libelleProduit,$qteProduit){
if (creationPanier())
{
if ($qteProduit > 0)
{
$positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);
if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
}
}
else
modifierQTeArticle($libelleProduit);
}
else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
function MontantGlobal(){
$total=0;
for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
{
$total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i];
}
return $total;
}
function MontantGain(){
$total=0;
for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
{
$total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['gainProduit'][$i];
}
return $total;
}
?> |
Merci par avance de votre aide.