Bonjour,

Je suis, en ce moment, en train d'implémenter un tableau HTML/PHP qui récupère des données dans une base de données ORACLE. Avec l'aide de fonctions JAVASCRIPT, j'affiche le tableau ainsi qu'un petit menu afin d'interagir (éditer/supprimer/ajouter des lignes au tableau et donc à la base de données). Je peux aussi mettre en surbrillance les lignes et les selectionner. Je peux savoir quelle ligne est selectionnée grâce à 'ligne.rowIndex' en JAVASCRIPT.

Là le code PHP/HTML qui genère le tableau :

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
 
function execute_requete($select,$where,$order) 
{
    // La variable '$serveur' devient globale
    global $serveur;
 
    $sql = $select . ' ' . $where.' '.$order;    
 
    // Execution requête
    $res= odbc_exec ($serveur,$sql);
 
    return $res;
}
 
 
    $clause_select = '...';
    $clause_where = '...';
    $clause_order = '...';
 
    if ($q <> '') 
    {
        $clause_where = $clause_where . ' AND ' .$q;
    }
 
 
    if ($r <> '') 
    {
        $clause_order = $r;
    }
 
    // Execution requête avec fonction 'execute_requete'
    $res = execute_requete($clause_select,$clause_where,$clause_order);
 
 
    // Entête du tableau
    // Decription des attributs de la balise 'table'
    // border = affiche (1) ou non (0) les bordures du tableau 
    echo "<table name='table' border='1' bordercolor='black' bordercolordark='' cellspacing='1' cellpadding='1' frame='' rules='rows'>";
 
 
    echo "<tr align='center' bgcolor='#1E90FF'>
 
    <th><font face='Verdana' size='2' color='#FFFFFF'>IDDOC</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>INSEE</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>DESCRIPTION</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>FICHIER</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>TYPE</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>PHOTO_DEFAUT</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>DOC_NUM</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>DATE_SAVE_DOC</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>DATE_SAVE_PUB</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>TAG_ADMIN</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>TAG_DELETE</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>LPN</th>
    <th><font face='Verdana' size='2' color='#FFFFFF'>ENTITYID</th>
 
    </tr>";
 
 
    //Parcours curseur PHP en variable tableau
    while($row = odbc_fetch_array($res))
    {
    echo "<tr align='center' name='ligne' onclick='clic_selection(this)' onmousemove='change_lavender(this)' onmouseout ='change_transparent(this)'>";
    echo "<td id='iddoc'><font face='Verdana' size='2' color='red'>" . $row['IDDOC'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['INSEE'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['DESCRIPTION'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='blue'>" . "<a href=" . $row['FICHIER'] . ">Fichier correspondant</a>" . "</td>"; 
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['TYPE'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['PHOTO_DEFAUT'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['DOC_NUM'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['DATE_SAVE_DOC'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['DATE_SAVE_PUB'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['TAG_ADMIN'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['TAG_DELETE'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['LPN'] . "</td>";
    echo "<td><font face='Verdana' size='2' color='black'>" . $row['ENTITYID'] . "</td>";
    echo "</tr>";
    }

Et là le code JAVASCRIPT qui gère le changement de couleur des lignes :

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
 
/*******************************************************
 Gestion du changement de couleur des lines du tableau
*******************************************************/
var select = 0;
var temp;
 
// Colore la line en transparent
function change_transparent(line)
{
	if (line.style.background!='orange') line.style.background='transparent';
}
 
// Colore la line en lavande
function change_lavender(line)
{
	if (line.style.background!='orange') line.style.background='lavender';
}
 
// Colore la line en transparent si elle est orange
// Remet en transparent la line selectionnée precedement et colore celle si en orange si differente
// Indique qu'une line est selectionnée en mettant le parametre select a 1
function clic_selection(line){
 
	if (!select)
	{	
		select = 1;
		line.style.background='orange';
		temp=line;
		show_menu();
	}
	else 
	{
		if (line.style.background=='orange') 
		{	
			select = 0;
			line.style.background='transparent';
			hide_menu();
		}
		else
		{	
			temp.style.background='transparent';
			line.style.background='orange';
			temp=line;
			show_menu();
		}
	}
}
Cependant je souhaite aussi pouvoir récupérer les champs d'une cellule de mon tableau. Et je n'arrive pas à pointer dessus. J'ai essayé avec 'getElementById' mais cela ne fonctionne pas. Si quelqu'un a une meilleure proposition, je suis preneur...

Merci d'avance