quentin0590
Messages postés46Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention31 juillet 2009
-
9 mai 2009 à 11:28
quentin0590
Messages postés46Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention31 juillet 2009
-
10 mai 2009 à 12:03
Bonjour, dans le cadre d'un script js j'ai besoin de nommer dynamiquement mes variables. Je vais tenter de vous donner un exemple parlant ^^:
var Toto_Tableau = new Array();
Toto_Tableau = Ingredient_String.split('|');
var Toto_Variable1 = Toto_Tableau[0] ;
var Toto_Variable2 = Toto_Tableau[1];
var Toto_Variable3 = Toto_Tableau[2];
var Toto_Variable4 = Toto_Tableau[3];
var Toto_Variable5 = Toto_Tableau[4];
var Toto_Variable6 = Toto_Tableau[5];
}
Jusque là tout va bien.
Ce que je souhaite faire c'est de créer une variable dont le nom sera Toto_Toto_Variable1 + Toto_Variable2
Est ce possible ?
Je vous remercie par avance de l'attention que vous porterez à ma requête.
quentin0590
Messages postés46Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention31 juillet 2009 9 mai 2009 à 13:59
c'est exactement ce que je disais !!!! vous n'employez pas "tel quel" !!!!! ( prière de vous calmer)
Je l'ai testé telle quelle dans une nouvelle page pour être sur qu'il n'y ai pas d'interférence avec les autres script. Résultat => undefined
La seule modification réelle est l'intégration d'une fonction. Modification qui soit dit en passant est obligatoire pour essayer de solutionner le problème exposer dans mon premier post dans lequel j'expose clairement le fait que j'ai besoin que le code marche dans une fonction.
Si j'ai séparé la déclaration de l'objet tableau et l'ajout de donné c'est parce que d'une part les déclaration doivent , afin d'eviter des erreurs et pour un confort de programmation, être explicite, et d'autre part parce que le code devient fonctionnel si la declaration de variables est en dehors de la fonction, d'où la necessité de séparer ces deux actions..
Je vous pris donc de ne pas haussez le ton de la voix et de mieux lire les post avant de repondre.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 9 mai 2009 à 11:34
Bonjour,
pas compris ?
tu veux que la variable s'appelle "Toto_Variable1 + Toto_Variable2"
dans ce cas, à prirori, oublie, un name avec +, je doute
et je ne vois pas l'intérêt de toutes manières
ou tu veux une variable, dont le nom importe peu,
qui contienne les 2 postes de l'array ?
quentin0590
Messages postés46Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention31 juillet 2009 9 mai 2009 à 12:15
Je n'ai pas bien compris votre exemple. J'ai l'ai donc essayer pour voir ce qui sort en alert et je reçois undefined.
var ab=10; <=========== à quoi sert la variable ab ?
var t=["a","b","c"]; <========= si je comprend bien t est un tableau de type array
alert( window[t[0]+t[1]] ); <========== içi t[0] = "a" t[1] = "b" mais a quoi sert le window ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 9 mai 2009 à 12:28
undefined ? avec quel navigateur ????
testé avec FF, IE : ok chez moi
vous avez testé "tel quel" ? . mauvais copié/collé ?
<script>
var ab=10; c'est la variable dont le nom sera utilisé dynamiquement
var t=["a","b","c"]; t[0]="a" t[1]="b" t[2]="c"
alert(window[t[0]+t[1]]); window[t[0]+t[1]] c'est ab
//et bien entendu un machin du style
window[t[1]+t[2]]=20; variable bc=20
alert(bc);
quentin0590
Messages postés46Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention31 juillet 2009 9 mai 2009 à 13:30
Ne marche pas chez moi, ni sous Firefox ni sous IE, ce n'est pas un mauvais copié collé.
Je l'ai testé telle quelle dans une nouvelle page pour être sur qu'il n'y ai pas d'interférence avec les autres script.
Je suis actuellement à la recherche de la cause de ce problème en le "rescriptant" d'une manière plus explicite :
function test() {
var bonjour = 10;
var tableau_test = new Array();
tableau_test[0]= "bon";
tableau_test[1]= "jour";
alert(window[tableau_test[0] + tableau_test[1]]);
}
Merci de me corriger si j'ai fais une erreur dans ce script (qui obtient le même résultat : undefined)
Pourriez vous m'en dire un peu plus sur ce window dans la déclaration de la variable. Je n'ai jamais vu une telle chose, merci de m'éclairer
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 9 mai 2009 à 13:44
Bonjour,
certes certes...
c'est exactement ce que je disais !!!! vous n'employez pas "tel quel" !!!!!
essayez donc :
<script>
var bonjour = 10;
var tableau_test = new Array();
tableau_test[0]= "bon";
tableau_test[1]= "jour";
alert( window[tableau_test[0]+tableau_test[1]]);
</script>
ben là... ça baigne...
variables globales ou pas...
pour que ce soit des variables locales.... faut creuser un peu plus
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 9 mai 2009 à 14:10
par exemple ....
<script>
var bonjour = 10;
function test() {
var tableau_test = new Array();
tableau_test[0]= "bon";
tableau_test[1]= "jour";
alert(window[tableau_test[0] + tableau_test[1]]);
}
test();
</script>
ça baigne... mais bonjour est globale !
si on veut strictement du local ( pourquoi faire ????? ) faut voir quoi....
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 9 mai 2009 à 14:53
>>Je n'ai jamais demandé de variable locale.
ben si... puisque tu fais dans une fonction !
et mon exemple ne l'était pas !
et c'est pour cela que ça ne fonctionnait pas chez toi :
j' insistait : fait "tel quel" ça baignera !
>>var window[Zone_Tableau[6] + Zone_Tableau[0]] = smthg
erreur de syntaxe !!!
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 9 mai 2009 à 15:15
>>>>var window[Zone_Tableau[6] + Zone_Tableau[0]] = smthg
erreur de syntaxe !!!
et j'ajoute : je t'ai dit comment faire !
>>Voilà le script qui répond au problème posé
pas gonflé le mec ! et il s'attribue la bonne réponse
à son sens... car c'est "même pas vrai" !! , enfin, pas la meilleure !
alors que je lui avais fourni toutes les billes !!!!!!
mais qu'il n'appliquait pas comme il faut
et que je mlui donne une autre réponse si c'est dans une fonction.....
quentin0590
Messages postés46Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention31 juillet 2009 9 mai 2009 à 16:53
Depuis le début je demande une fonction dans laquelle je pourrai créer (et non appeler) dynamiquement une variable dont le nom dépendra de string issu des paramètres de la fonction.
>>>>var window[Zone_Tableau[6] + Zone_Tableau[0]] = smthg
erreur de syntaxe !!! (
je sais, c'est bien pour ca que je demande...)
>>Voilà le script qui répond au problème posé
J'ai jamais dit que c'était moi qui l'avait créer. Cela permet juste aux autres utilisateur de trouver directement le code final
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 9 mai 2009 à 17:17
>>Depuis le début je demande une fonction dans laquelle je pourrai créer
ta demande c'était : dans le cadre d'un script js j'ai besoin de nommer dynamiquement mes variables
relis ce que je t'ai mis dans ma 2ème réponse suite au fait que tu disais
que ça ne fonctionnait pas, !?!?
alors que tu n'employais pas comme il fallait !!!
pas question de fonction la dedans,
j'ai répondu. pour une variable globale.
>>directement le code final
regarde ma réponse sous celle que tu as acceptée !
l'array en global : c'est inutile ( posté sans avoir vu ta réponse )
une variable locale, tu ne voulais pas à ce que tu disais , donc inutile de creuser.
>>je sais, c'est bien pour ca que je demande
relis ce que je t'ai mis dans ma 2ème réponse
quentin0590
Messages postés46Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention31 juillet 2009 9 mai 2009 à 17:27
Si l'on regarde mon premier post ainsi que l'exemple qui va avec on y vois une fonction et dans le post 2 " Ce que je souhaite faire c'est de créer une variable dont le nom sera Toto_Toto_Variable1 + Toto_Variable2"
C'est plutôt clair je trouve...
On va pas passer la journée à faire des joutes verbales....
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 mai 2009 à 09:38
t'as raison... j'abandonne.
une aide que je regrette au fond....
si on résume :
>>question incompréhensible
<<demande de précisiosn
>>question reformulée
<<réponse
>>ça marche pas !
( bien sur, car tu ne fais pas comme mon exemple
c'est ton adaptation qui foire )
<<montre enfin ce qu'il fait et c'est dans une fonction
qui utilise une variable locale alors qu'elle doit être globale
<<solution qui fonctionne
mais tableau global inutile. preuve que pas compris sûrement
>>solution avec fonction
<<comment utiliser var window[Zone_Tableau[6] + Zone_Tableau[0]] = smthg