PHP : test IF qui ne fonctionne pas!
Surferdargen
Messages postés
48
Date d'inscription
Statut
Membre
Dernière intervention
-
Surferdargen Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
Surferdargen Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
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
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
1 réponse
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.
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.
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.