|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Bonjour à tous,
me revoilà avec mon problème de caddie. Quasi tout fonctionne sauf que lorsque je tente de supprimer un élément, il me supprime tous les éléments de mon caddie. Il se retrouve donc vide. Il semblerait que l'id que je transmet en GET ne passe pas. De plus je recharge ma page afin de mettre mon tableau à jour à l'aide de <meta http-equiv="refresh" content="1;URL=<?php echo $_SERVER['PHP_SELF'] ?>"> mais il me le fait en boucle. Quelqu'un aurait-il une idée? Merci pour votre aide. Voici la structure de mon cadie : Code :
Code :
|
||||
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 101 ![]() |
Salut paintbox,
pour ton problème de caddie vide c'est normale car tu passes dans ton url le tableau 'id' et non la valeur qui t'intéresse: Code :
<a href="'.$_SERVER['PHP_SELF'].'?choix=supprimer&id='.$_SESSION['caddie']['id'][$i].'&produit='.$_SESSION['caddie']['prod'][$i].'&quantite='.$_SESSION['caddie']['qt'][$i].'&quantite='.$_SESSION['caddie']['nb_couleur'][$i].'">Supprimer cet article</a> ensuite pour ton souci de rechargement essaye de faire un juste avant ta balise <meta>, histoire de vérifier le contenu, je pense qu'il y a toujours ?choix=supprimer dans ton url donc il est normal qu'il repasse dans ta condition et refasse le refresh. pour mieux voir le réSultat, met en commentaire ton refresh: Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Hello Proxichou,
je ne vois pas ce que tu entends par valeur qui m'intéresse? Je dois quand même supprimer la ligne qui m'intéresse et cette ligne se détermine par $_SESSION['caddie']['id'][$i] ? Est-ce faut ? J'ai du mal à saisir la différence. |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 101 ![]() |
Dans ton code, par exemple, tu a écris:
Ce qui désigne un tableau contenant TOUS les id de tes produits qu'il y a dans le panier. Toi tu cherches a supprimer 1 élément, qui sera désigné par : Code :
$_SESSION['caddie']['id'][1]; //id de ton produit au rang 1 dans ton caddie autre chose, lorsque tu affiche les produits de ton panier tu récupère correctement ton id avec alors pourquoi l'avoir fait différemment lorsque tu souhaites récupérer un id pour le supprimer ? |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
J'avais effectivement déjà essayé cela
<a href="'.$_SERVER['PHP_SELF'].'?choix=supprimer&id='.$_SESSION['caddie']['id'][$i].'&produit='.$_SESSION['caddie']['prod'].'&quantite='.$_SESSION['caddie']['qt'].'&quantite='.$_SESSION['caddie']['nb_couleur'].'">Supprimer cet article</a> mais cela produit le même effet, tout disparaît. Le problème semble venir d'ailleurs ? |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Pourquoi tu ne passes par simplement le $i en paramètre, plutôt que de passer par un tableau temporaire, tu pourra simplement faire :
unset($_SESSION['caddie']['id'][$suppr_produit]); unset($_SESSION['caddie']['prod'][$suppr_produit]); ... |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 101 ![]() |
Oui aussi, ça allégera ton code déjà.
|
|
|
00
|
|
|
#8 | ||||
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Je viens de faire ceci comme tu le propose Joker-eph:
Code :
Une question ? Mon lien supprimer ce produit doit bien passé ceci en paramètre ? Code :
|
||||
|
|
00
|
|
|
#9 | ||
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Je viens également de tester ceci :
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Ceci fonctionne :
Code :
Si je supprime un élément dans la liste (ex: l'article 2 sur un total de 5) j'ai ceci comme erreur: Idem si je commence par le haut de la liste (le 1 par ex) Notice: Undefined offset: 2 in /Applications/MAMP/htdocs/projets/bics-promo/devis.php on line 95 Notice: Undefined offset: 2 in /Applications/MAMP/htdocs/projets/bics-promo/devis.php on line 96 Notice: Undefined offset: 2 in /Applications/MAMP/htdocs/projets/bics-promo/devis.php on line 97 Notice: Undefined offset: 2 in /Applications/MAMP/htdocs/projets/bics-promo/devis.php on line 99 |
||
|
|
00
|
|
|
#11 | ||
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
C'est bon mon problème est résolu. En fait c'était visiblement mon $panier_tmp qui n'avait pas la même structure que mon $_SESSION['caddie']
Code :
Merci à vous 2 pour votre aide ! |
||
|
|
00
|
|
|
#12 | ||||
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Pourquoi faire simple quand on peut faire compliqué ?
Code :
D'une manière générale, ton code est vraiment spaghetti, c'est une horreur :-( Rien qu'au niveau structure de donnée, ton caddie devrait plutôt être : Code :
|
||||
|
|
00
|
|
|
#13 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Tu veux dire qu'il devrait plutôt se présenter comme ceci ?
$_SESSION ['caddie']['id']['prod'] $_SESSION ['caddie']['id']['qt'] $_SESSION ['caddie']['id']['nb_couleur'] Je pensais que ma façon de le construire était bonne. Je débute et tes conseils sont les bienvenue ! Merci |
|
|
00
|
|
|
#14 | ||||
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Bon je restructure rapidement que tu vois l'idée :
Code :
Code :
|
||||
|
|
00
|
|
|
#15 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Ok, je vois.
Et pourquoi utiliser un foreach plutôt que qu'un if ? |
|
|
00
|
|
|
#16 |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
|
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
oui j'avais compris mais je voulais juste savoir quel était l'avantage du foreach par rapport au if puisque les 2 fonctionnent ?
|
|
|
00
|
|
|
#18 |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Je ne comprends pas ta question, foreach() remplace for(), rien à voir avec if() ??
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com