Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3119 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Problème avec une boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Problème avec une boucle

n°1792082
Ben-o
Posté le 25-09-2008 à 19:03:48  profilanswer
 

Bonjour à tous, je fais appel à vos conseils car j'ai un problème avec une boucle php sur lequel je planche depuis plusieurs heures.
 
J'ai une liste d'objets avec la possibilité de les mettre dans un panier.
Je voudrai pouvoir afficher "Ajouter au panier" si l'objet n'est pas encore dans le panier donc et "Supprimer du panier" si l'objet y est déjà.
 
Voici le code de la boucle:
 

Code :
  1. for ($idObjet = 0; $idObjet < $nbObjet; $idObjet++) {
  2. if ($donnees['id_objet'] !== $objet_deja_dans_le_panier[$idObjet]) { ?>
  3.  <a href="">Ajouter au panier</a>
  4. <?php }
  5. else { ?>
  6.  <a href="">Supprimer du panier</a>
  7. <?php }
  8. }


 
Ca fonctionne bien lorsque j'ai un seul bien dans le panier, mais dès que j'en ai deux ou plus, au lieu qu'il n'y ait que "Ajouter au panier" ou "Supprimer du panier", j'ai par exemple:
 
Ajouter au panier
Ajouter au panier
Ajouter au panier
Supprimer du panier
 
Selon le nombre d'objets dans le panier.
Il y a peut être une solution avec 'break', mais je n'ai pas réussi.
 
Merci par avance pour votre aide.


Message édité par Ben-o le 26-09-2008 à 10:55:17
mood
Publicité
Posté le 25-09-2008 à 19:03:48  profilanswer
 

n°1792084
flo850
moi je
Posté le 25-09-2008 à 19:07:18  profilanswer
 

le  melange id_objet idObjet est du meilleur gout :love:
 

Code :
  1. if ($donnees['id_objet'] !== $objet_deja_dans_le_panier[$idObjet])


 
a remplacer par un truc du genre  

Code :
  1. if(in_array($idObjetEnCours , $tableauDesObjetsDansMOnPanier)))

n°1792088
Ben-o
Posté le 25-09-2008 à 19:36:48  profilanswer
 

Merci flo, je teste ça !

n°1792158
Ben-o
Posté le 25-09-2008 à 22:13:53  profilanswer
 

J'ai toujours le même problème punaise, je ne m'en sors pas.
Voici le code complet :
 

Code :
  1. <?php
  2. $nbObjets = count($_SESSION['panier']['idObjet']); // On récupère le nombre total d'objets
  3. $objet_deja_dans_le_panier = array(); // On initialise la variable $objet_deja_dans_le_panier en tant qu'array
  4. if ($nbObjets > 0) { // Si il y a des objets dans le panier
  5.  for ($i = 0; $i < $nbObjets; $i++) { // On fait une boucle pour alimenter l'array avec les id des objets du panier
  6.   $objet_deja_dans_le_panier[] = htmlspecialchars($_SESSION['panier']['idObjet'][$i]);
  7.  }
  8.  for ($idObjet = 0; $idObjet < $nbObjets; $idObjets++) {
  9.   if (in_array($donnees['id_objet'], $objet_deja_dans_le_panier)) { ?>
  10.    <br /><a href="">Supprimer du panier</a>
  11.   <?php }
  12.   else { ?>
  13.    <br /><a href="">Ajouter au panier</a>
  14.   <?php }
  15.  } // Fermeture boucle for ($idObjet = 0; $idObjet < $nbObjets; $idObjet++)
  16. } // Fermeture if ($nbObjets > 0)
  17. // Si il n'y a pas d'Objets dans le panier, on affiche : "ajouter au panier"
  18. else { ?>
  19.  <br /><a href="">Ajouter au panier</a>
  20. <?php }
  21. ?>


 
Merci par avance si quelqu'un peut me donner une piste.
 
PS: je changerai les id_objet et idObjet après coup, merci pour le conseil.

n°1792259
flo850
moi je
Posté le 26-09-2008 à 09:56:38  profilanswer
 

Ben-o a écrit :

J'ai toujours le même problème punaise, je ne m'en sors pas.
Voici le code complet :

 
Code :
  1. <?php
  2. $nbObjets = count($_SESSION['panier']['idObjet']); // On récupère le nombre total d'objets
  3. $objet_deja_dans_le_panier = array(); // On initialise la variable $objet_deja_dans_le_panier en tant qu'array
  4. if ($nbObjets > 0) { // Si il y a des objets dans le panier
  5.  for ($i = 0; $i < $nbObjets; $i++) { // On fait une boucle pour alimenter l'array avec les id des objets du panier
  6.   $objet_deja_dans_le_panier[] = htmlspecialchars($_SESSION['panier']['idObjet'][$i]);
  7.  }
  8.  for ($idObjet = 0; $idObjet < $nbObjets; $idObjets++) {
  9.   if (in_array($donnees['id_objet'], $objet_deja_dans_le_panier)) { ?>
  10.    <br /><a href="">Supprimer du panier</a>
  11.   <?php }
  12.   else { ?>
  13.    <br /><a href="">Ajouter au panier</a>
  14.   <?php }
  15.  } // Fermeture boucle for ($idObjet = 0; $idObjet < $nbObjets; $idObjet++)
  16. } // Fermeture if ($nbObjets > 0)
  17. // Si il n'y a pas d'Objets dans le panier, on affiche : "ajouter au panier"
  18. else { ?>
  19.  <br /><a href="">Ajouter au panier</a>
  20. <?php }
  21. ?>
 

Merci par avance si quelqu'un peut me donner une piste.

 

PS: je changerai les id_objet et idObjet après coup, merci pour le conseil.

 


$objet_deja_dans_le_panier[] = htmlspecialchars($_SESSION['panier']['idObjet'][$i]); <== le htmlspecialchars est inutile . Il ne doit servir que lors d'un affichage. Et en plus , tes id sont sensé etre numériques,non?

 


for ($idObjet = 0; $idObjet < $nbObjets; $idObjets++) {  <== tu n'utilise jamais $idObjet dans ta boucle, je suis pas sur que ce soit normal

 

// On initialise la variable $objet_deja_dans_le_panier en tant qu'array <== commentaire inutile


Message édité par flo850 le 26-09-2008 à 09:56:59
n°1792306
Ben-o
Posté le 26-09-2008 à 10:55:03  profilanswer
 

Merci pour ton aide flo, j'ai résolu le problème, je n'avais tout simplement pas besoin de boucle...

n°1792313
katikat
j'adOôôôre les SushiS...
Posté le 26-09-2008 à 11:00:53  profilanswer
 

Question au hasard : "Comment ajoute-t-on [RESOLU] à l'en-tête d'un sujet clos sur ce forum??" Merci

n°1792316
Ben-o
Posté le 26-09-2008 à 11:02:06  profilanswer
 

Il te suffit d'éditer ton premier post

n°1792319
katikat
j'adOôôôre les SushiS...
Posté le 26-09-2008 à 11:02:59  profilanswer
 

Merci bien


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Problème avec une boucle

 

Sujets relatifs
[Résolu] Probleme boucle colorationProbléme avec une boucle for
probleme de double boucle et variables... [résolu]probleme de boucle avec une date résolu
[Résolu] Probleme boucle toute simple pourtant[RESOLU] Problème avec un IF imbriqué dans une boucle FOR
[PHP] Problème avec une boucle (RESOLU)Probleme boucle while[Résolu]
Problème avec boucle [résolu]problème de boucle avec update.........(résolu)
Plus de sujets relatifs à : [Résolu] Problème avec une boucle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR