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 :
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 :
sur le onblur j'ai ceci :
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.
Sauriez-vous me dire comment je peux faire pour qu'elle récupère sa couleur d'origine ?
Voici l'entierté de mon code :
Merci d'avance pour votre aide très appréciée.
beegees
Modifié par beegees (03 Mar 2009 - 19:34)
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 :
.ligne0 { background-color : #F4FFE4; }
.ligne1 { background-color : #CCCCCC; }
<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 :
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 :
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.
Sauriez-vous me dire comment je peux faire pour qu'elle récupère sa couleur d'origine ?
Voici l'entierté de mon code :
<?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é
?>
Merci d'avance pour votre aide très appréciée.
beegees
Modifié par beegees (03 Mar 2009 - 19:34)