[RESOLU] Données dans un if

Données dans un if [RESOLU] - PHP - Programmation

Marsh Posté le 23-03-2017 à 11:21:10    

Bonjour,
 
Je dois être bien fatigué, mais j'ai un trou...
 
J'ai plusieurs comparaisons que je voudrais mettre dans mon if.
Mais plutôt que de les écrire directement dans le if, je voudrais les préparer dans la ligne avant.
Ma question est: comment l'écrire pour l'intégrer dans le if?
 

Code :
  1. $id_produit_disabled = "($id_produit == 2932) || ($id_produit == 2935) || ($id_produit == 2936)";
  2. if($id_produit_disabled)
  3. {
  4. $disabled =  "disabled='disabled'";
  5. }


 
Si je laisse mon if ainsi, ça ne va pas puisqu'il vérifie alors seulement si $id_produit_disabled = true.
 
Comment puis-je l'écrire correctement?
 
Merci d'avance!


Message édité par bingojm le 23-03-2017 à 18:22:02
Reply

Marsh Posté le 23-03-2017 à 11:21:10   

Reply

Marsh Posté le 23-03-2017 à 11:37:04    

Ton code est bon pour moi enfin sauf les ""
 

Code :
  1. //initialise la variable id_produit à 1
  2. $id_produit = 1;
  3. //booleen obtenu avec la comparaison que tu veux faire
  4. $bool = ($id_produit == 2932) || ($id_produit == 2935) || ($id_produit == 2936);
  5. //si le booleen est vrai on rentre dans le if
  6. if($bool)
  7. {
  8. $disabled =  "disabled='disabled'";
  9. }
  10. //sinon on rentre dans le else
  11. else
  12. {
  13. $disabled = "false";
  14. }
  15. echo $disabled;


ici dans mon cas sur ta page on affichera false;
 
sinon on peut initialiser ta variable disabled avec une valeur par défaut ça évite de mettre un else

Code :
  1. $id_produit = 1;
  2. $disabled = "false";
  3. $bool = ($id_produit == 2932) || ($id_produit == 2935) || ($id_produit == 2936);
  4. if($bool)
  5. {
  6. $disabled =  "disabled='disabled'";
  7. }
  8. echo $disabled;

Reply

Marsh Posté le 23-03-2017 à 13:53:24    

Sinon en une ligne:

Code :
  1. echo (($id_produit == 2932) || ($id_produit == 2935) || ($id_produit == 2936)? "disabled='disabled'":"false" )
 

Mais je doute fortement que les ID hardcodés soient une bonnes solution


Message édité par h3bus le 23-03-2017 à 13:54:24

---------------
sheep++
Reply

Marsh Posté le 23-03-2017 à 15:00:05    

Ca ne va pas...
 
Mon but est donc de dire: Si $id_produit est = 2932 ou 2935 ou 2936, alors j'active le disabled.
Par contre, si $id_produit = un autre nombre, je n'active pas le disabled.
 
Dans ce cas-ci, je n'ai rien qui passe en disabled.

Code :
  1. $id_produit = $donnees['id_produit'];
  2. $bool = ($id_produit == 2932) || ($id_produit == 2935) || ($id_produit == 2936);
  3. if($bool)
  4. {
  5. $disabled =  "disabled='disabled'";
  6. }


 
Par contre, si je fais ça, cela fonctionne bien (mais je cherche à l'écrire séparément):

Code :
  1. $id_produit = $donnees['id_produit'];
  2. if(($id_produit == 2932) || ($id_produit == 2935) || ($id_produit == 2936))
  3. {
  4. $disabled =  "disabled='disabled'";
  5. }


Reply

Marsh Posté le 23-03-2017 à 16:24:08    

Et un truc du genre :

Code :
  1. $id_produit = $donnees['id_produit'];
  2. $liste_ids_desactives = Array(2932, 2935, 2936);
  3. if(in_array($id_produit, $liste_ids_desactives))
  4.   $disabled =  "disabled='disabled'";

Reply

Marsh Posté le 23-03-2017 à 16:50:20    

+1 pour un in_array() plus lisible.
 
Sinon : $bool = (($id_produit == 2932) || ($id_produit == 2935) || ($id_produit == 2936));


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-03-2017 à 18:20:20    

Merci merci merci Toucouch!
J'adore apprendre encore et encore :)
 
ps: ca ne va pas non plus avec les parenthèses rufo...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed