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 :

nom de variable dynamique


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Février 2007
    Messages : 45
    Par défaut nom de variable dynamique
    Bonjour,

    Savez-vous comment créer des noms de variables dynamiquement ?

    Je m'explique :

    Dans une page HTML, j'ai un formulaire nommé "agence". Dans ce formulaire, plusieurs zones texte ayant pour nom cptagXX avec XX un numéro de 0 à 99.

    Je souhaite incrémenter une seule zone de texte à la fois (ces zones me servant de compteur) grâce à une fonction rattachée à un autre élément de ma page (pour simplifier, on dira qu'il s'agit d'un bouton).

    Cette fonction exécute l'instruction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.agence.cptidag1.value++ ;
    pour incrémenter le compteur de l'agence 1 ...

    Mais il faudrait que je puisse changer la valeur du numéro...

    Je précise que la bonne info est contenu dans une variable qui contient donc une chaine du genre "idagXX".

    En gros créer un nom de variable concaténant "cpt" et ma variable où se trouve la chaine idagXX...

    Quelqu'un aurait-la solution ?

    Merci d'avance...

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    tu utilise les names ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName('cptidag'+i)[0].value++ ;
    je ne vois pas le rapporte avec créer une variable dynamiquement, là il s'agit de mettre la main sur un objet non ?
    j'ai peut être pas tout compris ...

    si tu utilises les id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('cptidag'+i).value++ ;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Février 2007
    Messages : 45
    Par défaut
    Merci pour ta réponse.

    En fait j'ai trouvé une méthode simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval('document.agence.cpt'+agenceEnCours+'.value++') ;
    agenceEnCours étant la variable contenant la chaine idagXX qui va bien.

    Merci quand même pour la réponse, toujours aussi rapide sur developpez.net

  4. #4
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    En javascript, ces deux expressions sont équivalentes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    obj.prop
     
    obj["prop"]
    La 2ième est donc très utile quand on manipule des variables dynamiques.

    Il n'est aucunement nécessaire de passer par eval()

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    l'éval étant à manier avec des pincettes ...
    je te conseillerais plutot d'utiliser une des deux autres methodes proposées ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSTL] nom de variable "dynamique"
    Par gmonta31 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2006, 13h31
  2. Nom de variable dynamique
    Par mavina dans le forum Linux
    Réponses: 7
    Dernier message: 26/04/2006, 20h48
  3. Réponses: 4
    Dernier message: 13/09/2005, 11h50
  4. Noms de Variables dynamiques
    Par horec dans le forum Langage
    Réponses: 7
    Dernier message: 22/07/2005, 16h47
  5. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44

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