begin process at 2012 05 30 02:29:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Function & Méthodes

 > 

Trouver la colonne en cours


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trouver la colonne en cours

mercredi 21 janvier 2009 à 11:48:04 | Trouver la colonne en cours

Schlobock

Bonjour à tous,

 

Voici mon premier post, donc je vous prie d'être indulgent ^^

Voila le topo :

 

J'ai une application J2EE qui en gros affiche un tableau et qui calcule les totaux des cases selon les colonnes..

Le souci est que la fonction que j'ai trouvé recalcule a chaque fois pour toutes les colonnes du tableau, des qu'on rajoute une valeur, au lieu de recalculer le total de la colonne ou la valeur à été ajoutée..

 

Voici le code dans la jsp qui genere les cellules

 

< td class = "td_activite_duree" >

< input id = "${activite.key.code}_${case.id}_${case.code}_${case.formattedDate}"

< c:if test = "${case.projet_clos==true}">                    readonly="readonly"                                                   class="input_text input_activite_duree_clos"

      name="clos"

</ c:if >

< c:if test = "${case.projet_clos==false && case.bloquant==true}">

readonly="readonly"

name="bloque"

class="input_text input_activite_duree_bloque"

</ c:if >

< c:if test = "${case.projet_clos==false && case.bloquant==false}">

class="input_text input_activite_duree"

</ c:if >

type = "text"

maxlength = "5"

autocomplete = "off"

value = "${case.consomation}"

onchange = "javascript:checkValeur(this)"

onkeydown = "javascript:actionKey(this,event,'center_view_content_body_table')"                                                         

onkeypress = "if(self.event.keyCode == 13){javascript:checkValeur(this)}"

/>

< input type = "hidden" id = "hidden_activite" name = "hidden_activite" value = "${activite.key.code}_${case.id}_${case.code}_${case.formattedDate}"/>

</ td >

 

Et la fonction qui fait le calcul :

 

function calculSousTotalColonne()

{    

     

      var rep = /_/g;

      element = document.fsave.hidden_activite;

      alert(element[8].value)

 

      if (element!= null )

      {

            if (element.length>0)

            {

                  for ( var i=0; i<element.length; i++)

                  {

      nameField = element[i].value;

      tab = nameField.split(rep);

      document.getElementById(tab[0]+ "_" +tab[3]).value = "" ;

      document.getElementById(tab[0]).value = "" ;

            document.getElementById(tab[0]+ "_" +tab[3]).className= "sous_total_jour" ;

                  }

 

                 

                  for ( var i=0; i<element.length; i++)

                  {    

                 

                        var nameField = element[i].value;

      var source = parseFloat(document.getElementById(nameField).value);

                        tab = nameField.split(rep);

var temp = parseFloat(document.getElementById(tab[0]+ "_" +tab[3]).value);

                             if (isNaN(temp))

                                   temp=0;

                        temp = parseFloat(temp) + source;

                       

                        if (source==parseFloat(0))

                        {

                             document.getElementById(nameField).value = "" ;

                        }

                        if (isNaN(temp))

                        {

      var total = parseFloat(document.getElementById(tab[0]).value);

                             if (isNaN(total))

                                   total=0;

                             total = parseFloat(total) + source;

                             document.getElementById(tab[0]).value = total;

      document.getElementById(tab[0]+ "_" +tab[3]).value = temp;               document.getElementById(tab[0]+ "_" +tab[3]).className= "sous_total_jour" ;

                                   }

                           }

                       

                  }

                 

            }

      }

 

J'aimerai en fait récuperer la colonne dans laquelle la valeur a été ajoutée.. afin de faire un for in dedans.
Cela eviterait les calculs inutiles, seulement...je n'ai aucune idée de comment faire...
Si vous avez une idée je suis preneur, merci

mercredi 21 janvier 2009 à 12:10:21 | Re : Trouver la colonne en cours

Bul3

Membre Club
Réponse acceptée !
bonjour,

colonne ? un <table> alors ?

on n'a aucun html ? faut deviner quoi....
du coup, bien entendu, ça ne correspondra peut-être pas !

<table>
    <tr>    <td>    un    </td><td>    deux    </td>
            <td>    <input type="text" value="100"
                            onclick="alert(this.parentNode.cellIndex);" /></td>
            <td>    quatre    </td>
     </tr>
</table>


Cordialement
          [mon Site] [M'écrire] Bul         

mercredi 21 janvier 2009 à 13:52:30 | Re : Trouver la colonne en cours

Schlobock

Oui il s'agit d'un <table>, et je te remercie, car le code que tu m'as donné fonctionne!
Maintenant il faut que je vois comment récuperer ces données dans la fonction Javascript..

Mais je vais me débrouiller!
Merci encore pour ton aide rapide et efficace!
Bonne journée!
mercredi 21 janvier 2009 à 15:26:52 | Re : Trouver la colonne en cours

Schlobock

Bah en fait je galere...
j'ai modifié ma fonction afin de lui passer l'objet case, ce qui permet de récuperer la colonne en cours pour ne faire que le calcul dessus. :

function
calculSousTotalColonne(objet)

{    
var rep = /_/g;

      element = document.fsave.hidden_activite;

      colonne = objet.parentNode.cellIndex;
      objet.value=objet.value.replace(rep,".");
     
alert(element[8].value)

      if (element!= null )

      {

            if (element.length>0)

            {

                  for ( var i=0; i<element.length; i++)

                  {

      nameField = element[i].value;

      tab = nameField.split(rep);

      document.getElementById(tab[0]+ "_" +tab[3]).value = "" ;

      document.getElementById(tab[0]).value = "" ;

            document.getElementById(tab[0]+ "_" +tab[3]).className= "sous_total_jour" ;

                  }

                  for ( var i=0; i<element.length; i++)

                  {    

  var nameField = element[i].value;

      var source = parseFloat(document.getElementById(nameField).value);

                        tab = nameField.split(rep);

var temp = parseFloat(document.getElementById(tab[0]+ "_" +tab[3]).value);

                             if (isNaN(temp))

                                   temp=0;

                        temp = parseFloat(temp) + source;

                        if (source==parseFloat(0))

                        {

                             document.getElementById(nameField).value = "" ;

                        }

                        if (isNaN(temp))

                        {

      var total = parseFloat(document.getElementById(tab[0]).value);

                             if (isNaN(total))

                                   total=0;

                             total = parseFloat(total) + source;

                             document.getElementById(tab[0]).value = total;

      document.getElementById(tab[0]+ "_" +tab[3]).value = temp;               document.getElementById(tab[0]+ "_" +tab[3]).className= "sous_total_jour" ;

                                   }

                           }  

                  }  

            }

      }

j'ai essayé de remplacer la deuxieme boucle par 

for (objet.value in colonne)

mais rien ne se passe...j'ai du louper quelquechose mais je ne vois pas quoi..

Si quelqu'un pouvait m'aider a nouveau ce serait super!



Cette discussion est classée dans : case, document, tab, value, if


Répondre à ce message

Sujets en rapport avec ce message

controler plusieurs champs d'un formulaire [ par attentio ] Bonjour,j'ai une fonction qui verifie tous les champs d'un formulaire qui ne marche pasje ne comprends vraiment pas pourquoi ?si je mets   if(document Affiche nombre [ par jumano ] Bonjour,J'effectue une petite fonction en js me permettant d'effectuer certain calcul en fonction de "radio" en position check.Je récupère ensuite une Que pensez de mon formulaire. Petits soucis lors de l'envoie [ par chaudlesmarrons ] Voilà mon soucis, le bouton envois ne marche, dnc je reçois rien.Si quelqu'un peut m'aider? (je suis débutant)Mon code :<script type="text/javascrip Fonction [ par scorpion077 ] Bonjour,l'objectif de la fonction suivante est de verifier que au moins un des 3 champ (sexe, region, age (de 'age1' à 'age2')) est rempli.Mon problèm probleme controle de saisie avec du javascript dans un formulaire html.php [ par suethi75 ] BonjourJe controle les champs obligatoires dans mon formulaire cependant cela ne marche pas.Voici mon code javascript: function verifForm(){  if (docu problème fonction javascript [ par abdeslam2009 ] Bonjour, j'ai deux pages web en html consultation_client et article_consult dans la première page (consultation_client) j'ai créé des champs ,des Javascript et formulaire [ par warka0O ] Bonjour, (ou bonsoir) Je me présente à vous car j'ai un énorme soucis ! Mon contrôle de saisi sur mon formulaire ne veux pas s'opérer. Normalement, vérification des champs d'un formulaire [ par rustaflyx ] Bonjour à tous j'ai un problème dans le script de vérification de mon formulaire.j'ai un formulaire donc certain champs ne s'affiche qu'à certaines he Format séparateur de millier avec Javascript [ par sebalex ] Salut à tous, Voici ma fonction "calcul" (qui fonctionne bien) function calcul() { document.form.PRIME_ANNEE.value=Number(document.form.PRIME.value Vérification formulaire [ par maha1987 ] salut tout le monde, j'ai un formulaire html et css mais le controle javascript ne fonctionne pas j'ai essayé même avec le jquery mais toujours le mê


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales