Calculer les totaux des champs d'un tableau

pulls Messages postés 160 Statut Membre -  
 Utilisateur anonyme -
Bonjour,


je programme en php/mysql,

Je parviens à calculer dans une boucle en php, le total des champs d'un tableau dont les données viennent d'une base de données. Mais j'ai un problème, ce total est figé; quand je fait un filtre dans mon tableau pour n'afficher que certaines lignes, le même total reste affiché.

Je voudrais que ce total varie en fonction de nombre de lignes affichées suivant un critère de recherche. J'utilise data Table pour faire les recherches dans mon tableau.

Comment dois-je le faire en javascript, s'il vous plait?

Cordialement.
A voir également:

24 réponses

pulls Messages postés 160 Statut Membre 3
 
justement, hier j'ai essayé de filtrer les commissions du code vendeur 102, ce qui ramenait le tableau à n'afficher que 3 lignes correspondantes à ce vendeur, le total du tableau que nous avons calculé avec JS, n'a pas changé.
0
Utilisateur anonyme
 
je sais quoi faire, attends
0
Utilisateur anonyme
 
non mon idée ne fonctionne pas, je suis à court d'idée
0
Utilisateur anonyme
 
je met tout de même le code pour d'autres...

<body>
<table width="1105" border="0" align="left" cellpadding="0" cellspacing="1" bordercolor="#FF00FF" bgcolor="#FFFFFF" class="display" id="example" >

<caption class="important" >
<span class="Style4"> COMMISSIONS MOIS EN COURS </span>
</caption>

<thead >
<tr>

<td width="276" class="important">
<div align="center" class="Style3">
Date
</div></td>
<td width="34" class="important">
<div align="center" class="Style3">
Cse
</div></td>
<td width="43" class="important">
<div align="center" class="Style3">
Code
</div></td>
<td width="35" class="important">
<div align="center" class="Style3">
Rca
</div></td>
<td width="77" class="important">
<div align="center" class="Style3">
Percu
</div></td>
<td width="73" class="important">
<div align="center" class="Style3">
Cdef
</div></td>
<td width="69" class="important">
<div align="center" class="Style3">
C brutes
</div></td>
<td width="60" class="important">
<div align="center" class="Style3">
Ecarts+
</div></td>
<td width="56" class="important">
<div align="center" class="Style3">
Ecarts-
</div></td>
<td width="65" class="important">
<div align="center" class="Style3">
Rembmt
</div></td>
<td width="40" class="important">
<div align="center" class="Style3">
Ass
</div></td>
<td width="47" class="important">
<div align="center" class="Style3">
Impot
</div></td>
<td width="58" class="important">
<div align="center" class="Style3">
Avance
</div></td>
<td width="40" class="important">
<div align="center" class="Style3">
Scol
</div></td>
<td width="46" class="important">
<div align="center" class="Style3">
Dette
</div></td>
<td width="69" align="center" class="important"><strong>C Nettes</strong></td>
</tr>
</thead>

<tbody >

<tr bgcolor="">
<td height="22"> <div class="maclass">2013/09/02</div></td>
<td><div class="maclass"> 8</div></td>
<td><div class="maclass"> 8</div></td>
<td><div class="maclass"> 6</div></td>
<td><div class="maclass"> 7</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 3</div></td>
<td><div class="maclass"> 7</div></td>
<td><div class="maclass"> 5</div></td>
<td> <div class="maclass">6</div></td>
<td><div class="maclass"> 3</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 4</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 5</div></td>
<td><div class="maclass"> 6<div></td>
</tr>
<tr bgcolor="">
<td height="22"> <div class="maclass">2013/09/02</div></td>
<td><div class="maclass"> 8</div></td>
<td><div class="maclass"> 8</div></td>
<td><div class="maclass"> 6</div></td>
<td><div class="maclass"> 7</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 3</div></td>
<td><div class="maclass"> 7</div></td>
<td><div class="maclass"> 5</div></td>
<td> <div class="maclass">6</div></td>
<td><div class="maclass"> 3</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 4</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 5</div></td>
<td><div class="maclass"> 6<div></td>
</tr>
<tr bgcolor="">
<td height="22"> <div class="maclass">2013/09/02</div></td>
<td><div class="maclass"> 8</div></td>
<td><div class="maclass"> 8</div></td>
<td><div class="maclass"> 6</div></td>
<td><div class="maclass"> 7</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 3</div></td>
<td><div class="maclass"> 7</div></td>
<td><div class="maclass"> 5</div></td>
<td> <div class="maclass">6</div></td>
<td><div class="maclass"> 3</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 4</div></td>
<td><div class="maclass"> 2</div></td>
<td><div class="maclass"> 5</div></td>
<td><div class="maclass"> 6</div></td>
</tr>


</tbody>
<tfoot class="important" >
<tr>
<th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th><th ></th>
</tr>
</tfoot>
</table>
<script type="text/javascript">
var tds = document.getElementsByClassName("maclass");
var trs = document.getElementsByTagName("tr").length;
var ths = document.getElementsByTagName("th");
var len = tds.length;
var calc = "";
var count = len / (trs - 2);
var nbr = len - count;
var tab = new Array;
c = 0;
d = count;

for (var i = 0; i < len; i++) {

calc = parseFloat(calc + parseFloat((tds[d].innerHTML)));
tab[c] = calc;
d = d + count;
if (d > nbr + c) {
c++;
d = c;

calc = "";
}

}

for (var t = 0; t < tab.length; t++) {
ths[t].innerHTML = tab[t];
if (ths[0].innerHTML) {
ths[0].innerHTML = "total";
}
if (ths[1].innerHTML) {
ths[1].innerHTML = "";
}
if (ths[2].innerHTML) {
ths[2].innerHTML = "";
}
}

</script>
</body>

0
pulls Messages postés 160 Statut Membre 3
 
Je vais dans ce cas procéder autrement.

Dans mon tableau je vais mettre un lien pour afficher les commissions d'un vendeur donc le code sera renseigné dans une fenêtre pop up.
les commissions de ce vendeur sera affiché dans une autre fenêtre pop up avec un Total pour ce vendeur.

J'avais voulu avoir tout ça dans un seul tableau, je vois que c'est compliqué.

Je vous remercie pour avoir voulu m'aider.

Cordialement
0
Utilisateur anonyme
 
ben je suis pas encore très très bon...je progresse chaque jours. D'autres sauront peut être mieux faire
0