UN TABLEAU ENCORE PLUS MODIFIABLE

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 21 mars 2008 à 06:44
kitty85 Messages postés 6 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 18 juillet 2008 - 18 juil. 2008 à 17:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46123-un-tableau-encore-plus-modifiable

kitty85 Messages postés 6 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 18 juillet 2008
18 juil. 2008 à 17:09
Merci pour ce code très pratique.
J'aimerais savoir comment colorier une ligne sur deux dans le tableau...
Merci
BaFM Messages postés 64 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 26 novembre 2009
24 mars 2008 à 12:26
Pour ajouter un texte dans un élément, il est préférable de créer un TextNode (document.createTextNode).
Ton template de tableau, que tu peux mettre dans un fichier, tu peux le charger à partir d'une iframe que tu masque et récupérer le contenu du body et des sous parties afin de les cloner et les associer à ton document principal pour pouvoir les insérer comme bon te semble sans recréer complètement. Et par ca, il t'es plus facile de savoir où est quoi.
Pour les fonctions, voir les définitions IDL de DOM en core et HTML. Normalement, toutes ces fonctions sont disponible quelque soit le navigateur, en admettant qu'il supporte la version de DOM choisi.
oufnomore Messages postés 15 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 21 mars 2008
21 mars 2008 à 18:31
mais tu as raison, je vais peut être essayer avec le DOM, pour apprentissage quoi
oufnomore Messages postés 15 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 21 mars 2008
21 mars 2008 à 18:28
l'ennui c'est qu'en réalité dans les lignes de mes tableau je n'ai pas que deux colonnes avec deux pauvres input et deux pauvres boutons...
j'ai plutôt des tableaux ressemblant à un mix de mes deux pauvres sources, avec plusieurs colonnes et différents comportements...
l'utilisation du DOM m'embête un peu dans ce cas là, ça devient vite fastidieux, et je ne vois pas vraiment de valeur ajoutée car en passant par mes innerHTML, du moment que je regénère les identifiants des objets créés
là si j'dois refaire cette source en utilisant le DOM, je vois pas du tout comment faire pour le move()
pour le coup j'ai déposé cette source pour montrer (et aussi m'habituer à) l'utilisation des insertRow deleteRow et rowIndex
je peux la faire supprimer si vous me dites que "ça s'fait plus en 2008"
le php/javascript j'y touche environ 1 fois tous les 2 ans, pas assez pour bien connaître toutes les bonnes pratiques...
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
21 mars 2008 à 15:48
A oui et encore un truc n'utilise pas le .innerHTML="content" pour rajouter du contenu mais recré plutôt (pas le chien de mickey hein!) les objets du contenu et ajoute les à ta cellule.
Je m'explique pour rajouter le span dans la td de l'exemple de mon dernier post toi tu fais:
<td>
Toto ==> myTd.innerHTML="Toto";
</td>
Il vaut mieu faire:
<td>
Toto ==> mySpan=document.createElement('span');
</td> mySpan.value='Toto' //ou mySpan.innerText='Toto' je sais plus
myTd.appendChild(mySPan);
Ca fait plus 'objet' comme approche :)
Dans ton code à la ligne 132 tu fais:
"trs[idxB].innerHTML = tr;"
dans la fonction move et ça m'envoi un message d'erreur en debuggant vite fait il semble que y une entourloupe dans le contenu de tr.
Voila bon courage!
oufnomore Messages postés 15 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 21 mars 2008
21 mars 2008 à 15:27
carrément, yes, bien vu, je vais même je crois m'y mettre au plus vite :) merci
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
21 mars 2008 à 13:49
En fait au début pour mon projet je voulais faire un template sous forme de xml genre :
<template id='1'>
<tr>
<td>
Toto
</td>
<td>

</td>
</tr>
</template>

et pour caque ligne son template sous cette forme apres garce à une JS tu le parse et tu créé ta ligne avec ça.
et après sur l'ajout de ligne tu appel ta fonction comme cela:
function addRow(nTable,idTemplate);
J'espère que tu ma compris^^
oufnomore Messages postés 15 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 21 mars 2008
21 mars 2008 à 13:03
C'est simplement qu'en corrigeant ma source après l'avoir validée la première fois, j'ai oublié le .value ... pardon pour cet oubli..
getel('cnt').value++; ça doit en effet mieux marcher :)
je vais corriger ça
je vais peut-être aussi fusionner mes deux sources comme me l'indique coucou747
et peut-être aussi suivre ton conseil lakichmole, mais là ce n'était pas mon but dans cet exemple..
moi j'utilise ce type tableau sur mon site perso, avec simplement une petite classe mysql et quelques fonctions, le tout en ajax, sans utiliser de système de template mais en tentant de m'en rapprocher, tout à la mano (pas trés propre, mais ça me forme on va dire), du coup la gestion du contenu des cellules est trés spécifique pour chacun de mes tableaux...
tu aurais éventuellement une piste ? une petite précaunisation sur la manière de faire, globalement ?
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
21 mars 2008 à 10:16
Un petit bug chez moi (deboggeur activé IE6) getel renvoi un objet en passant son id en paramètre alors pourquoi tu lui fait un "++" ou un "--" getel('cnt')++; ??
En tout cas le deboggeur me dis que tu ne peut pas le faire (l'objet récupéré par la fonction étant un input). Sinon le principe est pas mal :) .
Par contre il serait bien qu'on puisse choisir un template/model de ligne et pas que le contenu de la ligne soit en dure dans le code des fonctions. Je dis ça car dans mon taff on a eu cette problématique il m'a donc fallu faire des templates de lignes se qui rend la fonction de copie/ajout beaucoup plus générique tu devrais essayer de faire le même principe.:)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
21 mars 2008 à 06:44
tu devrais mettre a jours ton ancienne source et faire supprimer celle ci...
Rejoignez-nous