Salut à vous,

veuillez excuser ce titr barbare mais il résume assez bien la situation!

Dans un tableau html/php j'aimerais pouvoir attribuer une couleur à une ligne d'un coup de click. Jusqu'à présent, j'arrive à attribuer une couleur à une ligne grâce au MouseOver & MouseOut.

La centaine de lignes du tableau sont générées par une requête php/mysql.
Rien ne vaut un exemple, voici à quoi ressemble la portion de script qui nous intéresse:

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
<TABLE CELLPADDING=1 CELLSPACING=0 BORDER=0 WIDTH=100%> 
<TR bgcolor="#FFCC99"> 
<TD width="1%" bgcolor="#FFCC99"> <div align="center"><font size="2" face="verdana"><strong><font color="#990000">Nom</font></strong></font></div></TD> 
<TD width="10%"> <div align="center"><font color="#990000" size="1" face="verdana"><strong>El.</font></div></TD>
<TD width="10%"> <div align="center"><font color="#990000" size="1" face="verdana"><strong>Recalculer </strong></font></div></TD>
</TR> 
 
<?php
$year=@$_GET["year"];
 
require("conf.php3");
$background = "";
 
// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from table ",$db_link) or die(mysql_error());
$i=0;
while($parcours = mysql_fetch_array($requete)) 
{ 
$background++; 
 
if ($background%2) { 
$hexa = "#00FFCC"; 
} 
else { 
$hexa = "#33CCCC";
} 
 
//echo "<tr bgcolor=$hexa>";
echo "<tr  BGCOLOR=$hexa onMouseOut=javascript:this.style.background='$hexa' onMouseOver=javascript:this.style.background='#CC6699'>"; 
print ("<td width=15%> <div align=center><b><font size=1 face=verdana><a href='../client.php?num=$parcours[Client_num]&id=".$i."'>".$parcours['nom']."</a></font></div></td>\n");
print ("<td width=15%> <div align=center><b><font size=1 face=verdana><a href='fpdf/forfaits/persopdf.php?num=$parcours[Client_num]'>".$parcours['Prenom']."</a></font></div></td>\n"); 
print ("<td width=5%> <div align=center><b><font size=1 face=verdana>$parcours[index_new]</font></div></td>\n");
J'ai viré des lignes pour fair plus léger, même si je sais que vous trouverez mon script plutôt "lourd"

J'avais trouvé un beau script sur la toile. Comme les lignes du tableau doivent avoir un "id", je ne vois pas comment y intégrer mon tableau php!
Voilà le script en question:
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
<html>
<head>
<title>Exemple</title>
<style type="text/css">
<!--
.TR_Normal { background-color: #3399FF} 
.TR_Survol { background-color: #000099} 
.TR_Clique { background-color: #FFCC00} 
-->
</style>
<script language="JavaScript"> 
<!-- 
function Change(id, Mode) { 
	var Etat = document.getElementById("TR"+id).className; 
	switch(Mode) { 
 		case "Over": 
  			if(Etat!="TR_Clique") 
   				document.getElementById("TR"+id).className="TR_Survol"; 
  				break; 
 		case "Out": 
  			if(Etat!="TR_Clique") 
   				document.getElementById("TR"+id).className="TR_Normal"; 
  				break; 
 		case "Click": 
  			if(Etat=="TR_Clique") 
   				document.getElementById("TR"+id).className="TR_Survol"; 
  			else 
   				document.getElementById("TR"+id).className="TR_Clique"; 
  				break; 
	}  
} 
//--> 
</script>
</head>
 
<body>
<div align="center">
  <TABLE>
    <TR id="TR1" class="TR_Normal" onMouseOver="Change(1,'Over');" onMouseOut="Change(1,'Out');" onClick="Change(1,'Click');"> 
      <TD width="200" height="100"> </TD>
    </TR> 
<TR id="TR2" class="TR_Normal" onMouseOver="Change(2,'Over');" onMouseOut="Change(2,'Out');" onClick="Change(2,'Click');">
      <TD width="200" height="100"> </TD>
    </TR> 
    <TR id="TR3" class="TR_Normal" onMouseOver="Change(3,'Over');" onMouseOut="Change(3,'Out');" onClick="Change(3,'Click');"> 
      <TD width="200" height="100"> </TD>
    </TR> 
</TABLE> 
</div>
</body>
</html>
Merci pour vos bons conseils et bon 2008 à tous.

Camomille