DamDamDeo a écrit :
On 10 mai, 04:01, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:
J'espère seulement que tu comprends ce qui est bidouillé ?
Sinon il faut demander.
Je comprend globalement ce qui se passe :
"additionne tous les nombres contenu dans la rangé et affiche le
résultat dans le dernier input de cette rangé"
(heu j'ai bon ?)
oui :-)
mais très sincèrement, de là à essayé de refaire quelque chose dans
le même style pour qu'en plus de calculer des rangés on puisse aussi
calculer des colonnes, y'a pour moi un grand fossé.
Il faut s'inspirer du premier jus.
on crée un tableau (un array) des sous-totaux par colonne
var tot = new Array(); // ou : tot = [];
on crée une variable pour le sous-total de la rangée
var sstot = 0;
on commence par relever le nombre d'inputs
var c = document.form1.length;
puis le nombre de rangées
var r = document.getElementsByTagName('TR');
ce qui nous donne le nombre de colonnes :
var n = c/r;
on peut alors créer les sous-totaux par colonnes (sauf la dernière)
for(var i=0; i<n-1; i++) tot[i] = 0;
ensuite on fait une boucle sur les rangées sauf la dernière des totaux
la boucle a pour pas : n (on saute de n cellules en n cellules)
for(var i=0; i<(c-n); i = i+n) {
dans cette boucle on fait une boucle sur les inputs de la rangée
for(var j=0; j<(n-1); j++) {
addition de chaque input dans sous-total de rangée
sstot += f[i+j].value*1;
addition de chaque input dans sous-total de colonne
tot[i] += f[i+j].value*1;
fin de sous-boucle
on dispose le sous-total de la rangée
f[i+n-1].value = sstot;
on remet à zéro le sous-total de rangée pour le prochain passage (i+n)
sstot = 0;
enfin il ne reste plus qu'à réaliser la boucle sur la dernière rangée des totaux généraux
( les cellules ou inputs depuis f[c-n] à f[c-2] )
( rappel : les inputs vont de f[0] à f[c-1] )
pour entrer les résultats des sous-totaux par colonnes puis le total de la rangée
sstot = 0;
for(var i=0; i<n-1; i++) {
f[c-n+i]. value = ...
Voili, voilou
Le truc complet est prèt, je te le donne dès que tu m'as montré tes tentatives.
--
sm