Calcul horizontal et vertical précision sur question

Signaler
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015
-
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015
-
j'arrive à appliquer une formule, par exemple addition, sur une ligne et sur
une colonne, mais je ne sais pas comment faire sur plusieurs lignes et
plusieurs colonnes le but étant d'obtenir un total en bout de chaque
ligne et chaque colonne.

Ce que j'ai oublié de dire c'est que le tableau en question est le résultat d'une
recherche depuis une base de données, le nombre de lignes est susceptible de
changer en fonction de la recherche (pas des colonnes); le name des inputs est
par exemple aaa en vertical et bbb en horizontal donc dés que je passe un total
sur une 2ème ligne je me retrouve évidemment avec la même référence d'input
et cela ne marche pas.
si quelqu'un pouvait me renseigner ce serait sympas merci !!

6 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

accès au contenu des cellules :
formulaire.tableau.rows(n° ligne).cells(n° colonne).innerHTML

mais s'il y a des input :
le name des inputs est par exemple aaa en vertical et bbb en horizontal
ça veut dire quoi ?
<tr><td></td><td></td>...</tr>

<tr><td></td><td></td>...</tr>...
il y a quoi à la place des ? [ nous donner un petit extrait
de la page html générée, pas le PHP, si "difficile" à expliquer ]

Cordialement. Bul. ~Site
~~
[mailto:marcelBultez@tiscali.fr Mail
]~
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

Bonjour c'est sympa de vous pencher sur mon souci; voici une copie de la
source et ce qu'il me manque c'est le total horizontal, je m'y prends
certainement mal mais je n'y arrive pas d'autant plus que le tableau
peut évoluer en nombre de lignes (puisqu'il est généré par le résultat d'une
recherche depuis une page précédente).nb: j'ai trés simplifié ce tableau
puisque c'est le principe qui m'intéresse.

<html><head><title></title>
<script language="JavaScript">
function calcul1() {
var total = 0;var nb;
nb = document.totaux.retour.length;
total = eval(document.totaux.infini.value);
for( i = 0 ; i < nb ;i++ ) {
if (document.totaux.retour[i]) total total + eval(document.totaux.retour[i].value);total Math.floor(total * 100.01)/100;}
document.totaux.vertical1.value = total;
}


function calcul2() {
var total = 0;var nb;
nb = document.totaux.retour1.length;
total= eval(document.totaux.infini.value);
for( i = 0 ; i < nb ; i++ ) {
if (document.totaux.retour1[i])
total = total + eval(document.totaux.retour1[i].value);
}document.totaux.vertical2.value = total;
}</script>


</head>

<form name="totaux">
,
----

, ,
,
----

,
,
,
----

Somme,
Somme,
,
</form>

</html>

Merci d'avance @+
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
n'est-il pas possible de générer des names
( ou des id ) plus "homogènes" ? du style :
<tr>
<td></td>
<td></td>
<td></td>
<td></td></tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td></tr> ...
ce qui permettrait d'imbriquer 2 boucles
la 1ère sur v.length ( les lignes ) ou sur
getelementById(v n° ligne)
l'autre sur h"n° ligne" ( les colonnes
à cumuler vers v[n° ligne] )
ou getelementById(h n° ligne_n° colonne)
car tel que c'est fait là,
difficile d'automatiser simplement.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

Merci, mais je n'y arrive toujours pas, je pense que votre principe est bon
mais comme je débute en javascript je pense que je me plante complètement
et qu'il va me falloir lire des bouquins sur le sujet pour pouvoir me lancer

<html><head><title></title>
<script language="JavaScript">


function calculhorizontal() {
var total = 0;var nb;
nb = document.totaux.h1.length;
total = eval(document.totaux.infini.value);
for( i = 0 ; i < nb ;i++ ) {
if (document.totaux.h1[i])
total = total + eval(document.totaux.h1[i].value);
}document.totaux.v1.value = total;
{
var total = 0;var nb;
nb = document.totaux.h2.length;
total = eval(document.totaux.infini.value);
for( i = 0 ; i < nb ;i++ ) {
if (document.totaux.h2[i])
total = total + eval(document.totaux.h2[i].value);
}document.totaux.v2.value = total;
}}



function calculvertical() {
var total = 0;var nb;
nb = document.totaux.v1.length;
for( i = 0 ; i < nb ; i++ ) {
if (document.totaux.v1[i])
total = total + (eval(document.totaux.h1[i].value)) + (eval(document.totaux.h2[i].value));
}document.totaux.vertical1.value = total;}


</script>


</head>

<form name="totaux">
,
----

, , ,
----

, , ,
----

Somme, Somme, ,
</form>

</html>
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
un ch'tit exemple alors ?

<HTML>
<HEAD>
<TITLE>Exemple à adapter</TITLE>
<script type="text/javascript">
function calcul()
{for ( var l=0;l<frm.v.length;l++)
{ frm.v[l].value=0;
var cm=frm["h"+l].length;
for (var c=0;c<cm;c++ )
{ frm.v[l].value=Number(frm.v[l].value)+Number(document.frm["h"+l][c].value);
} } }
</script>
</HEAD>

<form name="frm">
,
,
,
----
,
,
,
----
,
,

</form>
</HTML>

les champs mériteraient d'être
controlés avant le calcul ....
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

C'est effectivement sans comparaison aucune avec mon brouillon mais je vais
y travailler sérieusement, peut être qu'un jour à mon tour je pourrais rendre
service à d'autres .

MERCI