Rechercher : dans
Par :

[Javascript] Nom de variable dynamique ?

Dernière réponse le 27 avr 2009 à 11:16:36 Tiret, le 1 sep 2006 à 21:49:34 
 Signaler ce message aux modérateurs

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 !

Meilleures réponses pour « [Javascript] Nom de variable dynamique ? » dans :
Le remplacement de variables en shell Bash VoirLe remplacement de variables Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

boss0211, le 1 sep 2006 à 21:55:07

Quapel tu une variable dynamique? MERCI BIEN!!

Répondre à boss0211

2

Tiret, le 1 sep 2006 à 22:05:02

Pas variable dynamique, mais Nom de variable dynamique.

En gros, j'aimerais que le nom de ma variable puisse changer afin d'atteindre des objets différents en fonction du cas.

Exemple:

$document.Formulaire.Champ_'Partie variable du nom'.value

Pour illustrer le cas:

J'ai une fonction qui est atteignable par plusieurs endroits.
J'aimerais passer un paramètre qui soit la ' partie variable du nom', sachant que:

- J'ai dans la fonction plusieurs noms de variables qui ont besoin d'être dynamiques
- J'aimerais éviter de passer X paramètres, un pour chaque variable que je dois atteindre.


En espérant que ça t'aide à comprendre mon problème ;)

Répondre à Tiret

3

Tiret, le 1 sep 2006 à 22:06:14

Document.Formulaire.Champ_'Partie variable du nom'.value e

et non pas

$document.Formulaire.Champ_'Partie variable du nom'.value

Répondre à Tiret

4

boss0211, le 1 sep 2006 à 22:09:35

Donc il faut que tu fasse du PHP mélanger a du JS
ce que je peu te conseiller c'est de mettre

$variable = ta_variable_JS;
MERCI BIEN!!

Répondre à boss0211

5

Tiret, le 1 sep 2006 à 22:58:51
  • +8

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 !

Répondre à Tiret

16

jona303, le 19 avr 2009 à 13:06:36

EDIT : rien :)

Répondre à jona303

6

wrongway, le 15 déc 2006 à 11:42:09

MERCI pour ta solution Tiret,

Je ne l'ai pas encore testé, mais si ça marche c'est bien pensé.
en faite le principe que tu décris dans ton post est celui des pointeurs
utilisés dans un certain nombre de langage (C ou Java par exemple).
En effet la variable Prix contient "l'adresse" de la variable Prix_Bois qui
elle même contient la valeur 5000 après affectation. Corrige moi si je
me trompe. Bonne continuation.

Prix ---> Prix_Bois = 5000

Man.

Répondre à wrongway

7

littlesam, le 4 sep 2007 à 15:39:18

MERCI, MERCI, MERCI !

Répondre à littlesam

8

samsam, le 10 sep 2007 à 11:43:48

Alors là t'est un chef ! ton exemple illustre parfaitement ce dont j'avais besoin...

Voila 1/2 journée de gagné ! T'as bien nommé ton problème, c'est justement les termes que j'ai tapé en pensant à ce problème... merci 1000fois

Répondre à samsam

9

LeGui, le 3 oct 2007 à 15:14:48

Bien jouer !
J'aime beaucoup les noms de variables dynamiques en PHP et je me trouver bien dans l'embarras pour l'appliquer en Javascript ...
Merci beaucoup !

Répondre à LeGui

10

tibolt, le 16 oct 2007 à 17:05:28
  • +1

Salut à tous,
en cherchant un peu j'ai réussi à trouver comment faire !
Il suffit d'utiliser window[nom_de_variable] ou nom_de_variable peut evidemment etre une variable.
Et voila!

Répondre à tibolt

12

bigpouet, le 20 fév 2008 à 15:11:55

@tibolt
non ce n'est pas l'effet rechercher, en faisant ça tu crées simplement un tableau javascript window et une entrée nom_de_variable dans ce tableau.

Répondre à bigpouet

13

tibolt, le 28 avr 2008 à 15:49:56
  • +1

Je m'excuse d'insister mais cela ne creer pas "simplement un tableau javascript window" mais bien une variable. Tu peux tester : affecter une valeur à window['nom_de_variable_dynamique'] est l'équivalent de var nom_de_variable_dynamique = valeur... a moins que je n'aie pas bien compris le probleme.

Répondre à tibolt

14

vikisme, le 6 mai 2008 à 14:35:43
  • +1

Je suis d'accord avec tibolt, sa méthode permet bien de créer des variables de variables, et ça permet même de créer des fonctions avec un nom dynamique, exemple :

function testation(id) {
window[id + '_calendar'] = new CalendarPopup("test");
window[id + '_calendar'].setReturnFunction(id + "_retour");

window[id + '_retour'] = function(y,m,d) {
document.forms[0][id + '_date'].value = d + '/' + m + '/' + y;
}
}

Merci en tout cas, j'ai pas eut besoin de trop chercher pour faire ça :)

Répondre à vikisme

15

pierre, le 6 aoû 2008 à 21:19:12
  • +1

Bonjour,
la solution est là ...???
utiliser la fonction eval ...
http://groups.google.com/group/comp.lang.javascript/msg/c9a4­fa05542f4743

http://www.zdnet.fr/...

Répondre à pierre

11

Yozine, le 17 nov 2007 à 22:00:17

Salut,

merci pour le renseignement, je cherchais egalement cette info !

Répondre à Yozine

17

 Cameleon1st, le 27 avr 2009 à 11:16:36

Tout comme samsam : Parfait !

Répondre à Cameleon1st
Collection CommentÇaMarche.net