J'ai un panier php dans lequel j'ai un input recalculer qui modifie la qte (la fonction marche bien) et une qui modifie la remise. J'arrive à mettre la même remise pour tous les articles mais pas une différentes pour chaque article.
//le code d'action si j'ajoute supprime ou recalcule le panier
if($action !== null) {
if(!in_array($action,array('ajout', 'suppression', 'Recalculer')))
$erreur=true;
//Suppression des espaces verticaux
$l = preg_replace('#\v#', '',$l);
//On verifie que $p soit un float
$p = floatval($p);
$code_magasin = floatval($code_magasin);
//On traite $q qui peut etre un entier simple ou un tableau d'entier
if (is_array($q)){
$QteArticle = array();
$i=0;
foreach ($q as $contenu){
$QteArticle[$i++] = intval($contenu);
}
}
else
$q = intval($q);
}
if (!$erreur){
switch($action){
Case "ajout":
ajouterArticle($code_magasin,$marque,$l,$q,$p,$remise);
break;
Case "suppression":
supprimerArticle($code_magasin);
break;
Case "Recalculer" :
for ($i = 0 ; $i < count($QteArticle) ; $i++)
{
modifierQTeArticle($_SESSION['panier']['idProduit'][$i],round($QteArticle[$i]));
}
for($i = 0 ; $i <= count($idProduit);$i++)
{
modifier_remise($_SESSION['panier']['idProduit'][$i],$remise[$i]);
}
break;
Default:
break;
}
}
// fonction modifierQteArticle et modifier_remise
function modifierQTeArticle($idProduit,$qteProduit){
//Si le panier éxiste
if (creationPanier() && !isVerrouille())
{
//Si la quantité est positive on modifie sinon on supprime l'article
if ($qteProduit > 0)
{
//Recharche du produit dans le panier
$positionProduit = array_search($idProduit, $_SESSION['panier']['idProduit']);
if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
}
}
else
supprimerArticle($idProduit);
}
else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
function modifier_remise($idProduit,$remise){
//Si le panier éxiste
if (creationPanier() && !isVerrouille())
{
$positionProduit = array_search($idProduit, $_SESSION['panier']['idProduit']);
if ($positionProduit !== false)
{
$_SESSION['panier']['remise'][$positionProduit] = $remise ;
}
}
else
{
echo erreur;
}
}