Bonjour,
Je suis en train de créer un site web pour une communauté de joueur et je cherche à faire un tableau dynamique comme ici.
On double clique dans la cellule, une zone pour éditer le texte apparait, une fois fini on appuie sur entrée et le contenu de la cellule a changé et la base de donnée a été éditée. J'ai trouvé un merveilleux tuto ici que j'ai suivi à la lettre et au final malheur... rien ne se passe... Le rectangle pour éditer le texte n'apparait pas et je ne trouve pas la solution. La fonction ondblclick fonction très bien je l'ai testé avec un alert mais j'ai l'impression quelle ne va jamais chercher la fonction inlineMod située dans le script....
Voici mon fichier inlinemod.js :
Et ici ma partie HTML :
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 function inlineMod(id, obj, nomValeur, type) { if(editionEnCours) { return false; } else { editionEnCours = true; sauve = false; } //Objet servant à l'édition de la valeur dans la page var input = null; //On crée un composant différent selon le type de la valeur à modifier switch(type) { //Valeur de type texte ou nombre case "texte": case "nombre": input = document.createElement("input"); break; //Valeur de type texte multilignes case "texte-multi": input = document.createElement("textarea"); break; } //Assignation de la valeur if (obj.innerText) input.value = obj.innerText; else input.value = obj.textContent; input.value = trim(input.value); //On lui donne une taille un peu plus large que le texte à modifier input.style.width = getTextWidth(input.value) + 30 + "px"; //Remplacement du texte par notre objet input obj.replaceChild(input, obj.firstChild); //On donne le focus à l'input et on sélectionne le texte qu'il contient input.focus(); input.select(); //Assignation des deux événements qui déclencheront la sauvegarde de la valeur //Sortie de l'input input.onblur = function sortir() { sauverMod(id, obj, nomValeur, input.value, type); delete input; }; //Appui sur la touche Entrée input.onkeydown = function keyDown(event) { if (!event&&window.event) { event = window.event; } if(getKeyCode(event) == 13) { sauverMod(id, obj, nomValeur, input.value, type); delete input; } }; }
10l étant le nom de ma colonne SQL, et l'ID est le nom de la personne de la base a qui la modification s'applique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <script type="text/javascript" src="./inlinemod.js"></script> <td class="cellule" ondblclick="inlineMod(<?php echo $user['ID']; ?>, this, '10l', 'texte-multi');"><?php echo $user['10l']; ?>&nsbp</td>
Merci aux âmes charitables qui prendront le temps de m'aider dans mon projet.
B1
Partager