Page 1 sur 1

Couleurs de fond

Posté : 14 nov. 2019, 21:58
par LucMichel
Bonjour,

Je suis en train de finaliser un projet en PHP. Bien que débutant, j'ai pu avancer par mes propres moyens assez loin, mais là je bloque. Je cherche à attribuer une couleur à des cellules comprisent dans des valeurs différentes. Le problème, c'est que ma requête pointe toujours sur le vert "#18A303".
J'en déduit que ma fonction if ne fait pas le boulot :(

Merci pour votre aide

<td style="border-left: 1px solid #000000; border-right: 1px solid #000000"; bgcolor= $bgcolor <?php
if (($resultat1 > 0) && ($resultat1 <15)) {
$bgcolor= "#FFBF00";} elseif ((15 < $resultat1) && ($resultat1 < 45)) {
$bgcolor= "#4B46B4";} elseif ((45 < $resultat1) && ($resultat1 < 75)) {
$bgcolor= "#87CEFA";} elseif ((75 < $resultat1) && ($resultat1 < 105)) {
$bgcolor= "#FF0000";} elseif ((105 < $resultat1) && ($resultat1 < 135)) {
$bgcolor= "#18A303";} elseif ((135 < $resultat1) && ($resultat1 < 165)) {
$bgcolor= "#A9A9A9";} elseif ((165 < $resultat1) && ($resultat1 < 180)) {
$bgcolor= "#DC85E9";} elseif ((-180 < $resultat1) && ($resultat1 < -165)) {
$bgcolor= "#DC85E9";} elseif ((-165 < $resultat1) && ($resultat1 < -135)) {
$bgcolor= "#A9A9A9";} elseif ((-135 < $resultat1) && ($resultat1 < -105)) {
$bgcolor= "#18A303";} elseif ((-105 < $resultat1) && ($resultat1 < -75)) {
$bgcolor= "#FF0000";} elseif ((-75 < $resultat1) && ($resultat1 < -45)) {
$bgcolor= "#87CEFA";} elseif ((-45 < $resultat1) && ($resultat1 < -15)) {
$bgcolor= "#4B46B4";} elseif ((-15 < $resultat1) && ($resultat1 < 0)) {
$bgcolor= "#FFBF00";} elseif ($resultat1) {
$bgcolor= "#FFFFFF";}
?>

Re: Couleurs de fond

Posté : 14 nov. 2019, 22:10
par @rthur
Si tu fais tes tests après avoir affiché la variable $bgcolor, ça ne peut pas marcher effectivement.
Vérifie ton code HTML généré pour voir à quoi il ressemble

Re: Couleurs de fond

Posté : 14 nov. 2019, 22:36
par LucMichel
Apparement quelque chose comme ça ? Je ne trouve pas le code hexa du vert, pourtant la cellule ressort bien verte ?

</td>
<td style="border-left: 1px solid #000000; border-right: 1px solid #000000"; bgcolor= $bgcolor
align="center"><a class="comment-indicator">

Re: Couleurs de fond

Posté : 15 nov. 2019, 02:21
par @rthur
Les directives CSS (dans l'attribut style) dans ton code HTML sont incorrectes.

Doc:
https://developer.mozilla.org/fr/docs/W ... ound-color

Re: Couleurs de fond

Posté : 15 nov. 2019, 11:42
par LucMichel
Merci Arthur,

Il va donc falloir que je lise le mode d'emploi ;)

Re: Couleurs de fond

Posté : 15 nov. 2019, 17:03
par LucMichel
Même en lisant la notice, je ne m'en sorts pas :(

Mon script génère une couleur "#0bc000" que ne ne retrouve ni dans mon fichier css , ni dans mon fichier php ?

<td align="center" style="border-left: 1px solid #000000; border-right: 1px solid #000000" bgcolor="#0bc000" ;=""><a class="comment-indicator"></a> <comment>Le naturel..... </comment> <font size="1">
LE NATUREL </font></td>

Même en indiquant mes couleurs correspondant à la fonction if dans le fichier css, je retombe toujours sur " bgcolor="#0bc000"

Re: Couleurs de fond

Posté : 15 nov. 2019, 22:33
par @rthur
Ton code HTML est faux donc commence déjà par là.
Une fois que tu auras un code HTML correct alors tu pourras passer à l'étape de comment le générer en PHP.

Si tu fais les deux en même temps et que ça ne marche pas, tu te retrouves à bidouiller des trucs en PHP alors que c'est le HTML qui foire

Re: Couleurs de fond

Posté : 15 nov. 2019, 23:23
par LucMichel
Ok merci ;)

Re: Couleurs de fond

Posté : 16 nov. 2019, 19:54
par LucMichel
Voilà le bon code HTML qui marche en HTML sans PHP:

L'ENTHOUSIASTE</font></td>
<td style="border-left: 1px solid #000000; border-right: 1px solid #000000; background-color: #87CEFA;"

Par contre je ne parviens pas à changer la couleur en PHP en fonction de IF même si il n'y aucune erreur signalée :

<td style="border-left: 1px solid #000000; border-right: 1px solid #000000; background-color: $bgcolor;"
<?php
if ((0 < $resultat1) && ($resultat1 < $orbe)) {
$bgcolor= "#FFBF00";} elseif (($orbe < $resultat1) && ($resultat1 < $orbe + 30)) {
$bgcolor= "#4B46B4";} elseif (($orbe + 30 < $resultat1) && ($resultat1 < $orbe + 60)) {
$bgcolor= "#87CEFA";} elseif (($orbe + 60 < $resultat1) && ($resultat1 < $orbe + 90)) {
$bgcolor= "#FF0000";} elseif (($orbe + 90 < $resultat1) && ($resultat1 < $orbe + 120)) {
$bgcolor= "#18A303";} elseif (($orbe + 120 < $resultat1) && ($resultat1 < $orbe + 150)) {
$bgcolor= "#A9A9A9";} elseif (($orbe + 150 < $resultat1) && ($resultat1 < $orbe + 165)) {
$bgcolor= "#DC85E9";} elseif ((-165 - $orbe < $resultat1) && ($resultat1 < -150 - $orbe )) {
$bgcolor= "#DC85E9";} elseif ((-150 - $orbe < $resultat1) && ($resultat1 < -120 - $orbe)) {
$bgcolor= "#A9A9A9";} elseif ((-120 - $orbe < $resultat1) && ($resultat1 <-90 - $orbe)) {
$bgcolor= "#18A303";} elseif ((-90 - $orbe < $resultat1) && ($resultat1 <-60 - $orbe)) {
$bgcolor= "#FF0000";} elseif ((-60 - $orbe < $resultat1) && ($resultat1 <-30 - $orbe)) {
$bgcolor= "#87CEFA";} elseif ((-30 - $orbe < $resultat1) && ($resultat1 <-$orbe)) {
$bgcolor= "#4B46B4";} elseif ((-$orbe < $resultat1) && ($resultat1 <0)) {
$bgcolor= "#FFBF00";} elseif ($resultat1) {
$bgcolor= "#FFFFFF";}
?>

Re: Couleurs de fond

Posté : 16 nov. 2019, 20:29
par or 1
"Si tu fais tes tests après avoir affiché la variable $bgcolor, ça ne peut pas marcher effectivement."

Re: Couleurs de fond

Posté : 17 nov. 2019, 12:33
par LucMichel
Effectivement merci c'est la première chose à régler.
Malheureusement, il y a encore un problème. Je me pose la question sur les guillemets. En effet si on a par exemple {$bgcolor = "#FFBF00";} et en suite la variable background-color: $bgcolor;
Est-elle égale à #FFBF00 ou "#FFBF00" ?

Merci encore pour l'aide ;)

Re: Couleurs de fond

Posté : 17 nov. 2019, 14:13
par or 1
vous regardez le code source de la page html généré par le script php et vous avez la réponse.

Re: Couleurs de fond

Posté : 17 nov. 2019, 16:21
par LucMichel
J'ai trouvé une solution. Si ça peut aider :
<?php

if ((0 < $resultat1) && ($resultat1 < $orbe)) {
$bgcolor= 'yellow';} elseif ((30 - $orbe < $resultat1) && ($resultat1 < $orbe + 30)) {
$bgcolor= 'blue';} elseif ((60 - $orbe < $resultat1) && ($resultat1 < $orbe + 60)) {
$bgcolor= 'lightskyblue';} elseif ((90 - $orbe < $resultat1) && ($resultat1 < $orbe + 90)) {
$bgcolor= 'red';} elseif ((120 - $orbe < $resultat1) && ($resultat1 < $orbe + 120)) {
$bgcolor= 'green';} elseif ((150 - $orbe < $resultat1) && ($resultat1 < $orbe + 150)) {
$bgcolor= 'darkgray';} elseif ((165 - $orbe < $resultat1) && ($resultat1 < $orbe + 165)) {
$bgcolor= 'pink';} elseif ((-165 - $orbe < $resultat1) && ($resultat1 < -150 - $orbe )) {
$bgcolor= 'pink';} elseif ((-150 - $orbe < $resultat1) && ($resultat1 < -120 - $orbe)) {
$bgcolor= 'darkgray';} elseif ((-120 - $orbe < $resultat1) && ($resultat1 <-90 - $orbe)) {
$bgcolor= 'green';} elseif ((-90 - $orbe < $resultat1) && ($resultat1 <-60 - $orbe)) {
$bgcolor= 'red';} elseif ((-60 - $orbe < $resultat1) && ($resultat1 <-30 - $orbe)) {
$bgcolor= 'lightskyblue';} elseif ((-30 - $orbe < $resultat1) && ($resultat1 <-$orbe)) {
$bgcolor= 'blue';} elseif ((-$orbe < $resultat1) && ($resultat1 <0)) {
$bgcolor= 'yellow';} elseif ($resultat1) {
$bgcolor= 'white';}

?>

<td style="border-left: 1px solid #000000; border-right: 1px solid #000000; background-color: <?php echo $bgcolor;?>"