Javascript, entre 2 'function' [Résolu/Fermé]

Signaler
Messages postés
114
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
15 octobre 2008
-
Messages postés
114
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
15 octobre 2008
-
Bonjour à tous,
J'ai un petit soucis de javascript. J'ai 2 fonctions:

function premiere(id) {
var test = id;
if (test == "1")
{
var msg="bla1";
}
if (test == "2")
{
var msg="bla2";
}
...
..
.
}
function deuxieme(){
document.getElementById('madiv').innerHTML= msg;
}

et dans body
<a href="#" onclick="premiere('1');">1</a> - <a href="#" onclick="premiere('2');">2</a>
<div id="madiv"></div>

Le problème est que je n'arrive pas à avoir ce qu'il faut dans msg pour la 2ème fonction.
Ps: Si je mets var msg="bla3"; en dehors de la 1ère fonction, le message s'affiche bien pour bla3.

Comment faire la liaison entre les 2 fonctions ?


Merci de votre aide et bonne journée.

3 réponses

Messages postés
434
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
15 décembre 2008
380
Le mot clé "var" créer une variable en local, elle n'existe qu'entre les { } dans lesquel elle a été définit. Dans ton cas, la variable msg n'existe que dans les if :
// msg n'existe pas
if (test == "1")
{
var msg="bla1";
// msg existe
} 
// msg n'existe plus

Il te faut donc faire en sorte que la variable soit "global". En javascript, ça revient à ne jamais mettre de "var" devant, ou de la définir en dehors de tout code :
var test;
function premiere(id) { 
  msg = 'test';
  ...
}
function deuxieme(){
  document.getElementById('madiv').innerHTML= msg;
}
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
90
Bonjour.

function premiere(id) {
var test = id;
if (test == "1")
{
var msg="bla1";
}
if (test == "2")
{
var msg="bla2";
}
...
..
.
deuxieme (msg);
}
function deuxieme(texte){
document.getElementById('madiv').innerHTML= texte;
}

Tu dois appeler la fonction deuxieme à partir de ta fonction premiere, sinon tu n'exécute que la fonction premiere !
Et, pour éviter des éventuels conflits de variables, utilise des noms de variables bien différenciés...
Messages postés
114
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
15 octobre 2008
19
Merci de vos réponses GallyNet et macgawel.

J'ai essayé celle de GallyNet et ça fonctionne parfaitement.

Merci de vos aides et bonne journée !