[RESOLU] Couleurs de fond

Eléphanteau du PHP | 12 Messages

14 nov. 2019, 21:58

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";}
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 nov. 2019, 22:10

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
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 12 Messages

14 nov. 2019, 22:36

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">

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

15 nov. 2019, 02:21

Les directives CSS (dans l'attribut style) dans ton code HTML sont incorrectes.

Doc:
https://developer.mozilla.org/fr/docs/W ... ound-color
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 12 Messages

15 nov. 2019, 11:42

Merci Arthur,

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

Eléphanteau du PHP | 12 Messages

15 nov. 2019, 17:03

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"

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

15 nov. 2019, 22:33

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
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 12 Messages

15 nov. 2019, 23:23

Ok merci ;)

Eléphanteau du PHP | 12 Messages

16 nov. 2019, 19:54

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";}
?>

Mammouth du PHP | 2703 Messages

16 nov. 2019, 20:29

"Si tu fais tes tests après avoir affiché la variable $bgcolor, ça ne peut pas marcher effectivement."

Eléphanteau du PHP | 12 Messages

17 nov. 2019, 12:33

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 ;)

Mammouth du PHP | 2703 Messages

17 nov. 2019, 14:13

vous regardez le code source de la page html généré par le script php et vous avez la réponse.

Eléphanteau du PHP | 12 Messages

17 nov. 2019, 16:21

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;?>"