[Javascript] Nom de variable dynamique ?

Résolu
Bonjour

après avoir parcouru les rubriques des cours sans trouver de réponse, je me tourne vers vous.

Est-il possible de donner un nom dynamique à une variable ?

L'équivalent javascript de:

<?php 
$Nom_Var = Valeur;
$Nom1 = 'Nom_Var';
echo $$Nom1; // Affiche 'Valeur'
?>


Voila en attendant vos réponses, demandez des éclaircissements si je n'ai pas été assez clair !

12 réponses

Résumé de la discussion

Plusieurs échanges abordent la possibilité de nommer dynamiquement une variable en JavaScript et, par comparaison, l'équivalent PHP avec des techniques comme les variables variables. Des solutions évoquées incluent window[nom_de_variable] pour accéder à une variable dont le nom est déterminé au moment de l'exécution, et l'utilisation de noms de variables dynamiques via des formats du type Prix_'Bois'. D'autres proposent d'utiliser des noms de champ dynamiques dans des formulaires ou d'opter pour des approches propres comme document.createElement, afin d'éviter de manipuler directement des variables dont le nom varie. En cas de besoin, les réponses illustrent des distinctions entre variable dynamique et contenu dynamique et suggèrent diverses voies sans conclure sur une solution unique.

Bobot (l’IA à votre service)
  1. Je ne veux pas utiliser de php, je donnais juste à titre de comparaison/exemple ;) Mais merci pour la réponse.

    Bon j'ai réussi à gérer ça en restant "javascript", voici pour ceux qui pourraient en avoir besoin ma solution:

    function Test(Element)
    {
    //Admettons qu'Element contienne 'Bois'
    
    
    var Prix = 'Prix_'+Element;
    // Prix contient donc 'Prix_Bois'
    
    document.Formulaire.eval(Prix).value = 5000;
    // La valeur de l'element Prix_Bois, du formulaire Formulaire est donc définie: elle vaut maintenant 5000.
    }
    
    


    En espérant que ceci puisse aider d'autres personnes !
    1. EDIT : rien :)
    2. En effet la fonction eval() est faite pour çà...
      Merci pour ce rappel utile, je l'avais complètement oubliée celle-là ^^

      Par contre je suis pas du tout convaincu par la méthode utilisant l'objet window citée plus bas.
    3. Bonjour,

      et merci pour l'aide. C'est clair, et très utile.
    4. au lieu de :
      document.Formulaire.eval(Prix).value = 5000;
      on peut utiliser:
      document.Formulaire[Prix].value = 5000;
      car des fois eval ne fonctionne pas.
    5. bon c'est trop tard maintenant mais j'aurais plutot fais un document.createElement