Bonjour à tous,
Voici plusieurs jours que je navigue entre tests de variables et différents codes pour trouver ma solution.
Mais pas moyen !
Je souhaite dans mon caddie dynamique, avec un bouton Supprimer pour chaque article retirer cet article, le souci c'est que malgré tous mes efforts il me supprimer toujours tous le caddie .
Un peu d'aide serait la bienvenue !
Page Caddie_del.php:
<?php session_start(); if(isset($_POST)) { //var_dump($_SESSION['caddy']); //var_dump($_POST['id']); for($i=0;$i<count($_SESSION['caddy']);$i++) { for($j=0;$j<count($_POST['id']);$j++) { if($_POST['id'][$j] == $_SESSION['caddy'][$i]['prod']) { $panier=$_SESSION['caddy'][$i]; array_splice($_SESSION['caddy'],$i,1); if($_SESSION['caddy'][$i] == 0) { session_destroy(); } else { $_SESSION['caddy'][$i]=$panier; } } } } header("Location:caddie.php"); } else { echo "Erreur ! Recommencer ! ..."; } ?>
Page caddie.php :
<?php if(isset($_SESSION['caddy'])) { $prix_tot_ht=0; for($i=0;$i<count($_SESSION['caddy']);$i++)//Pour chaque articles du panier { $sql='Select id,cat,nom,prix FROM produits WHERE id="'.$_SESSION['caddy'][$i]['prod'].'"'; $res=mysqli_query($link,$sql) or die ('Erreur SQL!'.$sql.mysqli_error($link)); while($val=mysqli_fetch_array($res)) { $id=$val['id']; $cat=$val['cat']; $tva=19.6; $prix_ligne=$val['prix']*$_SESSION['caddy'][$i]['qte']; $prix_tot_ht+=$prix_ligne; $prix_temp=($prix_tot_ht*$tva)/100; $prix_tot_ttc=$prix_tot_ht+$prix_temp; echo "<tr>"; ?> <td width="96" height="30"><?php echo $val['nom']; ?></td> <td width="96" height="30"><?php echo $val['prix']; ?> €</td> <td width="96" height="30"> <?php if($cat=="objet") { ?> <select name="qte[]" class="text" OnChange="return Recharge();"> <?php $recup="SELECT * FROM quantite ORDER BY id"; $query = mysqli_query($link,$recup)or die('Erreur SQL!'.$recup.mysqli_error($link)); while ($data = mysqli_fetch_array($query)) { if($data['qte'] == $_SESSION['caddy'][$i]['qte']) { ?> <option value="<?php echo $data['qte'];?>" selected><?php echo $data['qte']; ?></option> <?php } else { ?> <option value="<?php echo $data['qte'];?>"><?php echo $data['qte']; ?></option> <?php } } ?> </select> <input type="hidden" name="id[]" value="<?php echo $id; ?>"> <?php } else { echo $_SESSION['caddy'][$i]['qte']; ?> <input name="qte" type="hidden" class="text" value="<?php echo $_SESSION['caddy'][$i]['qte']; ?>" size="4"> <input type="hidden" name="id" value="<?php echo $_SESSION['caddy'][$i]['prod']; ?>"> <?php } ?> </td> <td width="96" height="30"><?php echo number_format($prix_ligne,2,'.','');?> € </td> <td width="96"> <input name="Submit" type="submit" class="text" value="Retirer" OnClick="return Supp();"> </td> <?php } } } else { echo "<br> <span class=textOrange>Votre caddie est vide ! ...</span><br><br><br>"; } echo "</tr>" ?>
Après ce test (qui n'a pas été le seul) :
if($_POST['id'][$j] == $_SESSION['caddy'][$i]['prod']) { echo $_POST['id'][$j]; echo"=="; echo $_SESSION['caddy'][$i]['prod']; echo"<br>"; /*$panier=$_SESSION['caddy'][$i]; array_splice($_SESSION['caddy'],$i,1); if($_SESSION['caddy'][$i] == 0) { session_destroy(); } else { $_SESSION['caddy'][$i]=$panier; }*/ }
Voilà le résultat: Je n'ai accès au produit à retirer , je n'arrive plus à cerner;
1==1
3==3
4==4
Afficher la suite
15 janv. 2018 à 22:07
Ok merci pour tes conseils, je vais rééssayer Unset avec $ intermédiaire!
Je reviendrai si ca ne va pas !!! :)
Cdt