PHP : test IF qui ne fonctionne pas!
Fermé
Surferdargen
Messages postés
48
Date d'inscription
dimanche 2 septembre 2007
Statut
Membre
Dernière intervention
5 août 2010
-
19 avril 2008 à 10:03
Surferdargen Messages postés 48 Date d'inscription dimanche 2 septembre 2007 Statut Membre Dernière intervention 5 août 2010 - 19 avril 2008 à 12:14
Surferdargen Messages postés 48 Date d'inscription dimanche 2 septembre 2007 Statut Membre Dernière intervention 5 août 2010 - 19 avril 2008 à 12:14
Bonjour,
je voudrais changer la couleur du fond d'écran en fonction du résultat d'un test if avec quelquechose du genre
if ($nombre<10) {"<bgcolor=red>";}
elseif (10<$nombre && $nombre<12) {"<bgcolor=blue";}
else {echo "<bgcolor=green>";}
avec les instructions ad-hoc avant et après!
Mais ça ne fonctionne pas. Pourquoi? Comment modifier cela pour que ça fonctionne? Merci et bon week-end?
je voudrais changer la couleur du fond d'écran en fonction du résultat d'un test if avec quelquechose du genre
if ($nombre<10) {"<bgcolor=red>";}
elseif (10<$nombre && $nombre<12) {"<bgcolor=blue";}
else {echo "<bgcolor=green>";}
avec les instructions ad-hoc avant et après!
Mais ça ne fonctionne pas. Pourquoi? Comment modifier cela pour que ça fonctionne? Merci et bon week-end?
A voir également:
- PHP : test IF qui ne fonctionne pas!
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php?id=1 - Forum PHP
- Php natif - Forum PHP
- Retour à la ligne php ✓ - Forum PHP
1 réponse
_tonton
Messages postés
2
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
19 avril 2008
19 avril 2008 à 10:47
19 avril 2008 à 10:47
Bonjour,
Dans votre exemple, vous faites des erreurs à la fois en HTML et en PHP.
Tout d'abord, en HTML la balise <bgcolor=...> n'existe pas. Il s'agit en fait d'un attribut applicable à la balise <body>.
ex : <body bgcolor="#dd0000">
Cependant, je vous suggère de ne plus utiliser ces propriétés HTML qui ont une utilité visuelle et d'utiliser à la place les propriétés CSS adéquates.
Ces propriétés peuvent être implémentées de deux façons :
- l'utilisation d'une feuille de style externe
- l'utilisation de la propriété HTML style qui permet de définir n'importe quelle règle CSS.
Dans votre exemple, on trouvera donc quelque chose de ce style :
Concernant code PHP.
Dans le premier test, on exécute bgcolor=red pour toutes les valeurs inférieures à 10.
Dans le elseif, seules les valeurs supérieures ou égales à 10 sont donc tester. Or,la première partie du test n'autorise que les valeur inférieures à 10. Donc aucune de celles qui passent. bgcolor=blue n'est donc jamais exécuté.
En conclusion, voici un exemple possible d'implémentation de ce que vous voulez faire.
Si vous souhaitez accumuler les elseif, je vous suggère de jeter un oeil vers la structure switch bien plus lisible à mon sens.
Cordialement.
Dans votre exemple, vous faites des erreurs à la fois en HTML et en PHP.
Tout d'abord, en HTML la balise <bgcolor=...> n'existe pas. Il s'agit en fait d'un attribut applicable à la balise <body>.
ex : <body bgcolor="#dd0000">
Cependant, je vous suggère de ne plus utiliser ces propriétés HTML qui ont une utilité visuelle et d'utiliser à la place les propriétés CSS adéquates.
Ces propriétés peuvent être implémentées de deux façons :
- l'utilisation d'une feuille de style externe
- l'utilisation de la propriété HTML style qui permet de définir n'importe quelle règle CSS.
Dans votre exemple, on trouvera donc quelque chose de ce style :
<body style="background-color:#dd000;">
Concernant code PHP.
Dans le premier test, on exécute bgcolor=red pour toutes les valeurs inférieures à 10.
Dans le elseif, seules les valeurs supérieures ou égales à 10 sont donc tester. Or,la première partie du test n'autorise que les valeur inférieures à 10. Donc aucune de celles qui passent. bgcolor=blue n'est donc jamais exécuté.
En conclusion, voici un exemple possible d'implémentation de ce que vous voulez faire.
<?php if ( $nombre<10 ) $color = '#f00'; elseif ( $nombre<12 ) $color = '#00f'; // uniquement 10 et 11 en fait else $color = '#0f0'; ?> <body style="background-color:<?php echo $color;?>">
Si vous souhaitez accumuler les elseif, je vous suggère de jeter un oeil vers la structure switch bien plus lisible à mon sens.
Cordialement.
19 avril 2008 à 11:25
En effet, je veux que le nombre soit supérieur ou égal à 10 (10<=$nombre) et inférieur strictement à 12 (&& $nombre<12). J'ai donc écris :
elseif (10<=$nombre && $nombre<12) $couleur=green;
Et ça fonctione.
19 avril 2008 à 11:32
ton code dit
avec variable nombre en double
color en hexadécimale
si nombre<10
alors color = #code pour le rouge
sinon si nombre>=10 et nombre<12
alors color = #code pour le bleu
sinon color = #code pour le vert
fin si
la partie mise en gras est inutile car tu demande à l'ordinateur de tester une chose qui l'a déjà été. donc c'est plus lourd. c'est plus une faute de style que de programmation.
19 avril 2008 à 12:14