Voila je fais un planning et je voudrais pouvoir fusionner les cellules du tableau lorsque je sélectionne les cellules.
Voila mon exemple et j'aimerai que lorsque je sélectionnne avec une couleur les cellules je veux que ca devienne un seul bloc
Version imprimable
Voila je fais un planning et je voudrais pouvoir fusionner les cellules du tableau lorsque je sélectionne les cellules.
Voila mon exemple et j'aimerai que lorsque je sélectionnne avec une couleur les cellules je veux que ca devienne un seul bloc
si c'est sur une seul ligne il faut modifier le colspan de l'une des cellules, concanténer le contenu des cellules selectionnées puis supprimer les tds devenus inutiles ...
si ça s'étend sur plusieurs lignes ... heu ça devient un peu plus complexe , il faudra alors faire la même chose sue le colspan
comment on fait avec du javscript pour modifier les collspan
j'ai pas testé mais peut être auras tu besoin de passer par un setAttribute ou le style ...Code:document.getElementsByTagName('table')[0].getElementsByTagnName('td')[2].colspan=3
non marche pas.
En fait si tu as regardé mon exemple je veux que quand je sélectionne plusieurs cellules au lieu que ca fait plen de carré de la meme couleur je veux que ca devienne un bloc de la meme couleur
S majuscule ... :oops:Code:colSpan
un exemple juste avec le onclick sur la première cellule et sasn concaténation de contenu ...
Code:
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 <script type='text/javascript'> function mergeCells(cellule){ var NextTD cellule.colSpan="2"; NextTD=cellule.nextSibling; while(cellule.nextSibling.tagName!='TD'){NextTD=cellule.nextSibling.nextSibling;} cellule.parentNode.removeChild(NextTD) } </script> </head> <body> <table border="1" width="100%"> <tr> <td onclick="mergeCells(this)"> </td> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> </tr> <tr> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> <td width="20%"> </td> </tr> </table>
ton exemple ne marche pas. Il y a un probleme avec ton script.
je rectifie le script marche pas sur firefox mais fonctionne sur ie. Mais il faut que cela fontionne sur ie et sur firefox. Si tu sait comment faut faire pour firefox
ha oui firefox ...
Code:while(cellule.nextSibling.tagName.toLowerCase()!='td'){NextTD=cellule.nextSibling.nextSibling;}
merci je vais essayer de l'adapter pour mon planning.
Je pense que j'aurai un probleme pour faire l'effet inverse.
splitter des cellules ?
c'est faisable mais faudra vérifier le nombre de td sur la ligne
Il y a un probleme sur firefox. en fait la cellule s'étire bien mzis ne supprime pas les autres
arf nextSibling... bon je vais émuler ça...
en fait ce n'est pas que sur firefox. Dès que les colSpan est supérieur à deux il fait pas attention aux cellules qui son selectionnné au milieux.
arf ben faut compter le nombre de tds ..
Comment veux tu que je fasse?
Voila la fonction que j'ai faite. Sachant que le nombre de td est passé
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function mergeCells(cellule,nb){ for(i=0;i<=nb;i++){ var NextTD cellule.colSpan=nb; NextTD=cellule.nextSibling; if(navigator.userAgent.indexOf("Firefox") != -1) { while(cellule.nextSibling.tagName.toLowerCase()!='td'){ NextTD=cellule.nextSibling.nextSibling; } } else { while(cellule.nextSibling.tagName!='TD'){ NextTD=cellule.nextSibling.nextSibling; } } cellule.parentNode.removeChild(NextTD); } }
Cette fonction marche mais j'aimerais que quand je choisi rien Je puisse reconstruire les morceaux supprimer
?? tu as fusionné les contenus ?
tu veux dire revenir à la configiration initiale en scindant les cellules ?
heu pour ne pas être ennuyé pas les interprétation divergentes de Nodes entre FFx et IE, je te conseille d'appliquer un nodeCleaner ...
une recherche sur le forum t'apportera toute la lumière sur le nodeCLeaner
ok je regarde