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 :
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...
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(); } } }
Merci d'avance
Partager