IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

modifier un tableau avec javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut modifier un tableau avec javascript
    Salut à tous,

    je voudrais pouvoir éffacer des colonnes d'un grand tableau htlm.

    j'ai deja ce code qui fonctionne mais il est d'une lenteur à faire peur.

    si quelqu'un pouvais m'aider ca serait cool.

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    //*************************************************************************************************
    // fonction pour rendre visible un element choisi(d) ayant pour id(a) du tableau choisi(c)
    // a = id de l'element a effacer
    // c = id du tableau dans lequel on cherche
    // d = nom du tag recherche ex: td,tr,...
    //*************************************************************************************************
     
    function see_col(a,c,d){
    var tds=document.getElementById(c).getElementsByTagName(d);
    var r= new RegExp("^"+a+".+");
    for (var i=0; i<tds.length; i++) { 
      if(r.test(tds[i].id)){ 
       document.getElementById(tds[i].id).style.display="block"; 
     		} 
    	} 
    }
    Merci d'avance pour l'aide que vous pourrez me fournir.

    Lemmings

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    hum; commençons peut-être par un display='none' ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    je sais mais que ce soit block ou none le problème reste entier ;-)

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    après, veux-tu "effacer" ou "rendre invisible"? c'est complètement différent;

    je comprends mal le test et la regexp...

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    pourquoi tu ne fais pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function see_col(a){
    document.getElementById(a).style.display="block"; 
    }
    ?

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    le test avec la regexp est justifier dans le sense que je dois scanner tout le tableau a la recherche des éléments a éffacer. car je ne connais que le debut de l'id a éffacer .

    pour exemple

    je dois rendre invisible une colonne d'un tableau dont je sais que tous les id des td qui compose cette colonne commence par "kap" et le reste est généré pour rendre chaque td unique. donc j'ai des td avec comme id kap1568459.


    voila en gros le problème

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    eh bien... ton code semble parfait alors

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    le probleme c'est qu'il met 5 minutes voir plus pour éffacer une colonne du tableau.

    le document html qui contient le tableau fait 4 mb.


    n'y aurait-il pas moyen d'ameliorer les performances de ce javascript ou est-ce que c'est lier a la puissance de la machine client.

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    créer un attribut commun pour toutes les cellules d'une même colonne?

    ça simplifie déjà;

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    cad ? tu ferais ca comment ?

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    en fait je viens de faire un petit script pour voir combien de td le script doit scanner et il y en a 29619 ....

    donc je comprends pourquoi il est si lent

  12. #12
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    en générant ton tableau, tu donnes un attribut "col" au td; la valeur de col doit correspondre au début de l'id, comme "kap", dans ton exemple;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mon_td.setAttribute("col","kap");

    et après, ta fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    function see_col(a,c,d){ 
    var tds=document.getElementById(c).getElementsByTagName(d); 
     
    for(i=0; i!= tds.length; i++) {
    	if(tds[i].getAttribute("col")==a){
    		tds[i].style.display='none'
    	}
    }
    }

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    ca devrait allez plus vite a ton avis ?

  14. #14
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    je n'en sais fichtrement rien

    tu peux toujours essayer et concocter un ptit timer!

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    je vais essayé et je te dis quoi.

  16. #16
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    encore mieux à mon avis, un nom d'attribut unique par colonne, dont le nom et la valeur équivaut au début de l'id; ce qui donnera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mon_td.setAttribute("kap","kap");
     
    ...
     
    if(tds[i].getAttribute(a)){
         tds[i].style.display='none' 
    }

  17. #17
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    en fait je ne vois pas tres bien ou je dois mettre le mon_td.setAttribute :-)

    mon tableau est généré a partir de plusieurs loop en coldfusion donc je vois pas tres bien ou je pourrais l'utiliser

  18. #18
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    chaque cellule avec son id est bien générée dans une boucle?

    eh bien au même moment, tu crées l'attribut en utilisant la même variable que pour l'id;

    je ne connais rien à coldfusion mais peut-être peux-tu indiquer le bout de code où sont créées les cellules?

  19. #19
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 69
    Points
    69
    Par défaut
    voila quelque td

    entre # c'est egale a une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <cfloop from ="1" to="125" index="a">
    <td align="right" "kap#STADE##ATELIER#.#num0#.#num1#.#num2#.#num3##MATNR##tot#17">0</td>
    <td align="right" "kap#STADE##ATELIER#.#num0#.#num1#.#num2#.#num3##MATNR##tot#18">0</td>
    <td align="right" "kap#STADE##ATELIER#.#num0#.#num1#.#num2#.#num3##MATNR##tot#19">0</td>
    <td align="right" "kap#STADE##ATELIER#.#num0#.#num1#.#num2#.#num3##MATNR##tot#20">0</td>
    </cfloop>

  20. #20
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bah, je te confirme que je n'y comprends rien...

    c'est un extrait du code qui crée des cellules avec leur id?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [DOM] Modifier un onclick avec Javascript
    Par Sebastien14 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 19/01/2009, 11h01
  2. Modifier un tableau avec innerHTML sous IE
    Par Gédéon dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/12/2006, 12h32
  3. Réponses: 11
    Dernier message: 14/10/2006, 21h26
  4. [Excel]Ouvrir un tableau avec une liste modifiable
    Par mulot03 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/05/2006, 09h52
  5. Inclure une page dans dans une tableau avec javascript
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/09/2005, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo