Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème de condition multiple

Sujet résolu
    19 avril 2017 à 15:35:04

    Bonjour,

    Voici mon code :

    var note = parseInt($('.note').html());
    if(note == 100){
        $('.note').css('color', '#0000FF');
    }
    if(note < 100 && note >= 75){
        $('.note').css('color', 'yellow');
    }
    if(note < 75 && note >= 50){          /**/  
        $('.note').css('color', 'green'); /* <-- Seule cette condition fonctionne */ 
    }                                     /**/
    if(note < 50 && note >= 25){
        $('.note').css('color', 'orange');
    }
    if(note < 25 && note >= 0){
        $('.note').css('color', 'red');
    }

    J'aimerai changer la couleur de mon texte en fonction de sa valeur. Cela fonctionne uniquement avec la condition du milieu, j'ai bien la valeur en vert (ou autre si je change le green ca fonctionne aussi mais que pour la condition du milieu).

    Je ne comprend pas pourquoi. 

    PS : Ne fonctionne pas non plus avec des else if

    -
    Edité par Alpha476 19 avril 2017 à 16:03:19

    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2017 à 16:08:49

      Bonjour est ce que tu peux mettre le code html stp?
      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2017 à 16:16:21

        ba c logik -_-'

        EDIT : a non lol ^^ mea culpa :x 

        -
        Edité par PedroC 19 avril 2017 à 16:16:55

        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2017 à 16:22:03

          YLaakel a écrit:

          Bonjour est ce que tu peux mettre le code html stp?


          <td style='text-align:center' class='bold normalsize'>
              <span class='note'>".$row['note']."</span>
              <span style='color:blue;'> /100</span>
          </td>

          PedroC a écrit:

          ba c logik -_-'

          EDIT : a non lol ^^ mea culpa :x 

          -
          Edité par PedroC il y a 2 minutes

          Merci pour ton aide :D

          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2017 à 18:01:02

            Salut, à bien tu attendu que ton html sois chargé ?

            $(document).ready(function () {
            
              // code ici
            
            })



            • Partager sur Facebook
            • Partager sur Twitter
              20 avril 2017 à 8:41:15

              GannoN a écrit:

              Salut, à bien tu attendu que ton html sois chargé ?

              $(document).ready(function () {
              
                // code ici
              
              })



              Oui, je ne vous ai montré que la partie intéressante du code, j'utilise bien cette fonction pour charger le html.

              -
              Edité par Alpha476 20 avril 2017 à 8:41:38

              • Partager sur Facebook
              • Partager sur Twitter
                21 avril 2017 à 10:22:01

                Tu utilises une classe, j'imagine donc que tu as plusieurs td de class="note". L'instruction que tu utilises :
                var note = parseInt($('.note').html());

                ne ramène que la valeur de la première td "note" qu'il trouve

                tu dois utiliser la méthode jquery each() pour traiter chacune des notes de ta collection  : https://api.jquery.com/each/

                Effectivement utilise plutôt des si-sinon imbriqués pour tester les cas, tu simplifieras beaucoup ton code 

                if(note == 100){
                    $('.note').css('color', '#0000FF');
                }
                else if( note >= 75){
                    $('.note').css('color', 'yellow');
                }
                else if(note >= 50){          /**/ 
                    $('.note').css('color', 'green'); /* <-- Seule cette condition fonctionne */
                }                                     /**/
                else if(note >= 25){
                    $('.note').css('color', 'orange');
                }
                else{
                    $('.note').css('color', 'red');
                }



                -
                Edité par AnneHuard 21 avril 2017 à 10:26:30

                • Partager sur Facebook
                • Partager sur Twitter
                  24 avril 2017 à 11:37:04

                  Merci pour ta réponse, effectivement mon erreur était logique étant donnée que j'ai plusieurs td avec la classe note. 

                  J'ai régler le problème en passant par php comme ceci :

                  $thisnote = $row['note'];
                  if($thisnote == 100){
                      $txtcolor = 'blue';
                  }
                  else if($thisnote < 100 && $thisnote >= 75){
                      $txtcolor = '#00E024';
                  }
                  else if($thisnote < 75 && $thisnote >= 50){
                      $txtcolor = '#00B2FF';
                  }
                  else if($thisnote < 50 && $thisnote >= 25){
                      $txtcolor = '#FF6E00';
                  }
                  else if($thisnote < 25 && $thisnote >= 0){
                      $txtcolor = 'red';
                  }
                  <span style='color:".$txtcolor."' class='note'>".$row['note']."</span>




                  • Partager sur Facebook
                  • Partager sur Twitter

                  problème de condition multiple

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown