Partage
  • Partager sur Facebook
  • Partager sur Twitter

couleur_ligne change selon 'contenu de la cellule'

Sujet résolu
    13 juillet 2016 à 15:57:14

    Salut,

     svp, je veux que la couleur de la ligne du tableau change de couleur selon le contenu de la cellule ETAT

    le tableau ressemble a ça

    while ($i < mysql_num_rows($result)  &&  $data = mysql_fetch_assoc($result)) {
    	
      echo  "<tr id= 'tr_".mysql_result($result,$i,'ID')."'>"; 
     echo '<td align="center" valign="bottom"  > 
    			
    			 <a name="ETAT"  id="etat[]" value="'.mysql_result($result,$i,'ETAT').'"  class="flat-red"   >'.mysql_result($result,$i,'ETAT').' </a>
    	 
    			</td>' ; 	
       
      echo  "</tr>";
     
      $i++;
     
    }

    et le script

    if(document.getElementById(etat[id]).value =='D') 
     
     document.getElementById('tr_'+id).style="background-color:red";
    else document.getElementById('tr_'+id).style="background-color:white";



    merci pour tous vos réponses

    • Partager sur Facebook
    • Partager sur Twitter
    Soit je réussi Soit je réussi
    Anonyme
      13 juillet 2016 à 16:04:58

      Salut!

      Tes IF sont mal formatés.

      if(document.getElementById('etat'+id+'').value =='D') {
       document.getElementById('tr_'+id).style="background-color:red"; }
      else {
      document.getElementById('tr_'+id).style="background-color:white";
      }

      En plus,

      Ton code PHP c'est n'importe quoi!

      Tiens un truc plus clean, et qui marche...

      while ($data = mysql_fetch_array($result)) {
           
       echo  "<tr id= 'tr_".$data['ID']."'>";
       echo '<td align="center"><a id="etat'.$data['ID'].'"   class="flat-red"   >'.$data['ETAT'].' </a>
            
                  </td>' ; 
          
        echo  "</tr>";
        
        $i++;
        
      }



      -
      Edité par Anonyme 13 juillet 2016 à 16:09:39

      • Partager sur Facebook
      • Partager sur Twitter
        13 juillet 2016 à 16:10:10

        Merci , mais ça ne fonctionne toujours pas ainsi
        • Partager sur Facebook
        • Partager sur Twitter
        Soit je réussi Soit je réussi
        Anonyme
          13 juillet 2016 à 16:15:23

          id, n'est pas défini. Je viens de le remarquer.

          Nouvelle version de ton code :

          $i = 0;
          while ($data = mysql_fetch_array($result)) {
                
           echo  "<tr id= 'tr_".$data['ID']."'>";
           echo '<td align="center"><a id="etat'.$data['ID'].'"   class="flat-red"   >'.$data['ETAT'].' </a>
                 
                      </td>' ;
               
            echo  "</tr>";
             
            $i++;
             
          }

          JavaScript :

          for(i = 0; i < <?php echo $i; ?>; i++) {
          if(document.getElementById('etat'+id+'').value =='D') {
           document.getElementById('tr_'+id).style="background-color:red"; }
          else {
          document.getElementById('tr_'+id).style="background-color:white";
          }
          }




          -
          Edité par Anonyme 13 juillet 2016 à 16:19:13

          • Partager sur Facebook
          • Partager sur Twitter
            13 juillet 2016 à 16:17:05

            Non , sauf que ça ne donne aucun effet
            • Partager sur Facebook
            • Partager sur Twitter
            Soit je réussi Soit je réussi
            Anonyme
              13 juillet 2016 à 16:19:38

              J'ai édité mon message ;)
              • Partager sur Facebook
              • Partager sur Twitter
                13 juillet 2016 à 16:23:59

                j'avais fait la même chose mais toujours rien , tout est logique mais ça cloche quelque part
                • Partager sur Facebook
                • Partager sur Twitter
                Soit je réussi Soit je réussi
                Anonyme
                  13 juillet 2016 à 16:26:43

                  Un echo contient des espaces abusifs, vire les. Indice, ce echo fini par un </td>.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 juillet 2016 à 11:07:09

                    <?php
                    $i = 0;
                    while ($data = mysql_fetch_array($result)) {
                           
                     echo  '<tr class="ligne type-couleur-'.$data['ETAT'].'" id= "tr_'.$data['ID'].'">';
                     echo '<td align="center"><a id="etat'.$data['ID'].'"   class="flat-red"   >'.$data['ETAT'].' </a>
                            
                                </td>' ;
                          
                      echo  "</tr>";
                        
                    }
                    ?>
                    <style type="text/css">
                    .ligne
                    {
                    background-color: white;
                    }
                    
                    .type-couleur-D
                    {
                    background-color: red;
                    }
                    </style>


                    Il faut définir une class sur le TR donc la ligne en fonction de l'état et associé un style css dans le head du code HTML.

                    Pas besoin de javascript pour ça.

                    @Kacy Luzzardi : Faut arrèter de raconter n'importe quoi...

                    -
                    Edité par Niko300 14 juillet 2016 à 11:07:53

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      14 juillet 2016 à 13:23:28

                      Niko300 a écrit:

                      @Kacy Luzzardi : Faut arrèter de raconter n'importe quoi...


                      J'ai juste la malicieuse habitude d'utiliser du JavaScript quand on est dans le forum "JavaScript"...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 juillet 2016 à 12:37:26

                        salut,

                        La solution en JS est la suivante

                         <script> 
                        function change (id){
                        
                        if(document.getElementById(id).checked == true) 
                        
                         document.getElementById('tr_'+id).style="background-color:red";
                        else document.getElementById('tr_'+id).style="background-color:white";
                        }
                        
                        </script>


                        la ligne tr

                        	
                          echo  "<tr id= 'tr_".mysql_result($result,$i,'ID')."'>"; 

                         et la ligne du checkbox :

                         echo '<td align="center" valign="bottom" > 
                        			
                        			 <input type="checkbox"  name="critere1[]"    id="'.mysql_result($result,$i,'ID').'"  value="'.mysql_result($result,$i,'ID').'"  onchange="ChangeEtat(this.value);change(this.value);" class="flat-red"/> 
                        	 
                        			</td>' ; 

                        Merci a vous


                        • Partager sur Facebook
                        • Partager sur Twitter
                        Soit je réussi Soit je réussi

                        couleur_ligne change selon 'contenu de la cellule'

                        × 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