IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Couleur d'origine du tableau


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [PHP-JS] Couleur d'origine du tableau
    Bonjour tout le monde,

    J'ai un tableau qui se compose de plusieurs lignes et de 5 colonnes.

    Les lignes ont une couleur aléatoire (grise et verte) grâce à ce code :

    Le fichier css externe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .ligne0 { background-color : #F4FFE4; }
    .ligne1 { background-color : #CCCCCC; }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr class="'.$couleur.'" id="td_a_mettre_en_jaune_'.$tab['ID'].'">
    Une seule des colonnes contient une zone de texte (par ligne), le contenu de cette zone de texte peut être modifié.

    Sur le on focus de la ligne du tableau sélectionnée j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onfocus="this.select();this.style.backgroundColor=\'yellow\';document.getElementById(\'td_a_mettre_en_jaune_'.$tab['ID'].'\').style.backgroundColor=\'yellow\'";
    sur le onblur j'ai ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onblur="this.style.backgroundColor=\'white\';document.getElementById(\'td_a_mettre_en_jaune_'.$tab['ID'].'\').style.backgroundColor=\'white\'";"
    le problème (vous l'aurez compris) c'est que quand je quitte la ligne (onblur) elle devient blanche et perd donc sa couleur d'origine.

    Voici l'entierté de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <?php
    session_start();
    include('../connexion.php');
    include('../NomCompletDuCours.php');//cette fonction PHP permet d'afficher le nom complet du cours et si c'est théorie ou travaux pratiques
    $_SESSION['id_categories'] = $_POST['id_categories']; 
     
     
     
    //affiche le bouton "clôturer" en le désactivant si le cours est clôturé ou en l'activant si le cours n'est pas clôturé
    // IMPORTANT : il faut laisser le code ici pour que le bouton apparaisse au-dessus !!!!
     
    $sql_check_cloture = "SELECT Cloture FROM cours WHERE MNEMONIC = '".$_POST['idmnemonics']."' AND TYPE_DE_COURS = '".$_POST['id_types']."' AND Categorie = '".$_POST['id_categories']."' ";
    //echo $sql_check_cloture;
    $query_check_cloture = mysql_query($sql_check_cloture) or die(mysql_error());
    $row_Cloture = mysql_fetch_assoc($query_check_cloture);
     
    $sql_Affichage_Etudiants = 
    "SELECT inscrits_en.ID, inscrits_en.MATRICULE_ET, inscrits_en.MNEMONIC, inscrits_en.ANNEE_ACADEMIQUE, inscrits_en.CATEGORIE, inscrits_en.DECISION_ANNEE, inscrits_en.SESSION, inscrits_en.TYPE_DE_COURS, inscrits_en.NOTE, etudiants.NOM_ET, etudiants.PRENOM_ET, inscrits_en.Report
    FROM `inscrits_en`
    LEFT JOIN `etudiants` ON ( inscrits_en.MATRICULE_ET = etudiants.MATRICULE_ET )
    WHERE MNEMONIC = '".$_POST['idmnemonics']."' AND TYPE_DE_COURS = '".$_POST['id_types']."' AND CATEGORIE = '".$_POST['id_categories']."' ORDER BY etudiants.NOM_ET ";
     
    $query_comptage = mysql_query($sql_Affichage_Etudiants);
     
    if(!$query_comptage) {echo('Attention, la requete ne fonctionne pas ! '); }
     
    echo Nom_Complet_Cours($_POST['idmnemonics'],$_POST['id_types'],$_POST['id_categories']); //Nom_Complet_cours est une fonction qui indique le nom du cours
     
    $compteur = 0;
    echo '<table width="100%" border="1"> 
    		<tr>
    			<td style="display:none"></td> 
    			<td style="display:none"></td> 
    			<td align="center">Matricule</td> 
    			<td align="center">Nom</td> 
    			<td align="center">Prénom</td> 
    			<td align="center" width="5">Cote</td> 
    			<td align="center">Report</td> 
    		</tr>';	 
    while ($tab = mysql_fetch_array($query_comptage)){
    //gestion de la couleur des lignes, fait appel ? CSS/couleurs.css
    $couleur = ($compteur % 2 == 0) ? "ligne0" : "ligne1";
     
    //onblur="comparer(document.getElementById(\'note_originale'.$tab['ID'].'\').value, document.getElementById(\'note_zone_de_texte'.$tab['ID'].'\').value);"
     
    //chiffres(event) est la fonction javascript qui vérifie les caract?res entrés par l'utilisateur (voir js/ChiffresOnly.js)
    //Comparer est la fonction javascript qui vérifie si la cote encodée par le Professeur est la m?me que celle de la base de données, si
    //c'est la m?me, on n'exécute pas le code ajax, autrement, on exécute le code AJAX qui va mettre ? jour la bd.
    //onfocus="this.select();" permet de donner le focus a la zone de texte soit si il prend le focus par un clic de souris, soit si il prend le focus apr?s une mauvaise entrée (exemple si le visiteur tape "w")
     
    //ci-dessous, je donne un id à tr afin de mettre la ligne en jaune
    echo'	 
     <tr class="'.$couleur.'" id="td_a_mettre_en_jaune_'.$tab['ID'].'">
     			<td style="display:none"><input type="hidden" name="note_originale" id="note_originale'.$tab['ID'].'"  value="' . $tab['NOTE'] . '" /></td>  
    			<td style="display:none"><input type="hidden" name="i_d" id="i_d" value="' . $tab['ID'] . '" /></td>
    			<td width="5%" align="center" id="td_MATRICULE_ET">' . $tab['MATRICULE_ET'] . '</td>  
        		<td width="25%" align="center" id="td_NOM_ET">' . $tab['NOM_ET'] . '</td>  
        		<td width="35%" align="center" id="td_PRENOM_ET">' . $tab['PRENOM_ET'] .'</td>'
    			;  
     
    $sql_check_cloture = "SELECT cours.Cloture FROM cours WHERE cours.MNEMONIC = '".$tab['MNEMONIC']."' AND cours.TYPE_DE_COURS = '".$tab['TYPE_DE_COURS']."' AND cours.Categorie = '".$tab['CATEGORIE']."' ";
    //echo $sql_check_cloture;
    $query_check_cloture = mysql_query($sql_check_cloture) or die(mysql_error());
    $row_Cloture = mysql_fetch_assoc($query_check_cloture);
    //echo $row_Cloture['Cloture']; 
    echo' <td><input name="note_zone_de_texte'.$tab['ID'].'" type="text"';
    if($row_Cloture['Cloture'] == 1)  //si le cours est clôturé, on désactive les zones de texte
    {
      echo ' disabled="disabled" ';
    }
     
    //sur le focus, je sélectionne la valeur (devient bleue), la case devient jaune
     
    if ($tab['Report'] == ''){
    //this.style.backgroundColor=\'yellow\'; => met la couleur jaune à une cellule | document.getElementById(\'td_a_mettre_en_jaune_'.$tab['ID'].'\').style.backgroundColor=\'yellow\'"; => met la couleur jaune au reste de la ligne
    echo ' id="note_zone_de_texte'.$tab['ID'].'" onfocus="this.select();this.style.backgroundColor=\'yellow\';document.getElementById(\'td_a_mettre_en_jaune_'.$tab['ID'].'\').style.backgroundColor=\'yellow\'"; onchange="verif(this.value,'.$tab['ID'].');" onblur="this.style.backgroundColor=\'white\';document.getElementById(\'td_a_mettre_en_jaune_'.$tab['ID'].'\').style.backgroundColor=\'white\'";"  size="4" style="text-align:center" width="3	%" value="' . $tab['NOTE'] . '"   /> </td>';
    echo' <td width="25%" align="center">' . $tab['Report'] .'</td> 
    </tr>';
     $compteur++;
    }
    else
    {
    	//si la cote est un report, je le désactive
    	echo ' id="note_zone_de_texte'.$tab['ID'].'" size="4" disabled="disabled" style="text-align:center" width="3%" value="' . $tab['NOTE'] . '"   /> </td>';
    	echo' <td width="25%" align="center">' . $tab['Report'] .'</td> 
    	</tr>';
    	$compteur++;
    } 
     
    } 
     
    echo'</table>'; 
     
     
    //si le cours est clôturé, le bouton "clôturer" est désactivé
     
     
     
     
    ?>
    Sauriez-vous me dire comment je peux faire pour qu'elle récupère sa couleur d'origine ?

    Merci d'avance pour votre aide très appréciée.

    beegees

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 490
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 490
    Points : 6 044
    Points
    6 044
    Par défaut
    Bonjour,

    Si je regarde bien votre code, il est normal qu'il passe à blanc. Mais ceci relève plus du Javascript que PHP.
    Avez vous regardé votre code HTML généré et débugé ?
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

Discussions similaires

  1. [PHP-JS] Manipuler en Javascript un tableau dans un formulaire PHP
    Par Bouillons2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/11/2010, 10h10
  2. Réponses: 2
    Dernier message: 28/05/2009, 14h44
  3. Réponses: 15
    Dernier message: 11/05/2007, 15h28
  4. Couleur ligne d'un tableau
    Par Jumano dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 23/03/2007, 20h11
  5. fonction d'affichage de code php en couleur
    Par winnie82 dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo