Passage paramètre entre page HTML

Signaler
Messages postés
12
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
20 février 2008
-
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,
Je sais, la question a été posée 1000 fois et j'ai essayé toutes les réponses proposées. Donc je vais la formuler autrement :
Une variable globale (donc en dehors de toutes fonctions) déclarée dans un fichier .js contenant aussi des fonctions Javascript conserve-t-elle sa valeur si ce même fichier est utilisé dans 2 pages différentes (c'est le but d'un fichier .js),  car il semble que lorsque j'appelle la 2ème page, cette variable globale soit réinitialisée à sa valeur par défaut (c.a.d. "undefined") puisque le fait de recharger cette variable quand on appelle la 2ème page efface la valeur initialisée par la premère.
Est-ce que je dis une bétise ou bien il faut utiliser une autre méthode ?
Merci de me donner un exemple ressemblant au mien.

exemple :
contenu de fonctions.js :

var global_a;
function x() {
global_a = 1;
}
function y()  {
alert(global_a);
}

contenu de la page 1.html :

<head>
<script language="JavaScript" src="fonctions.js"></script>
</head>

x();

contenu de la page 2.html :

<head>

<script language="JavaScript" src="fonctions.js"></script>

</head>


y();          // javascript dit "undefined" ??????


J'ai simplifié au max pour être le plus clair possible.
Merci de me sortir de ce pétrin !!!

8 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
31
Bonjour,



>>Une variable globale (donc en dehors de toutes fonctions)
    ok. je suis d'accord

>>déclarée dans
un fichier .js
    aucune importance.

>>dans 2 pages différentes
(c'est le but d'un fichier .js), 
    un .js n'est pas fait pour ça.
    un .js c'est un copié/collé là où est mis le <script src=...>

       pas plus, pas moins.



    cookies, paramètres dans l'url...  pour communiquer entre pages

    ( si autre page ouverte avec window.open, c'est autre chose )




<hr />                Cordialement            Bul        
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
31
global, en javascript, c'est dans la page pas entre plusieurs pages.

pour passer des paramètres entre pages :
cookies, paramètres dans l'url...

<hr />                Cordialement            Bul        
Messages postés
12
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
20 février 2008

merci bultez de ta réponse rapide.
peux-tu me faire un petit exemple de passage des paramètres dans l'url et surtout comment je les récupèrent dans la page appelée.
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
31
les exemples fourmillent.. y compris sur Codes-Sources.

mais comme j'ai sous la main :

appel  
    location.href="test.htm?p1=v1&p2=v2";
récupération dans test.thm :
   
window.location.search    qui sera égal à :






?p1=v1&p2=v2



un petit substr, un split ou 2....  et ça baigne

exemple de généralisation ( appel la même page, mais bon,
    il suffit de changer la page à appeler ( quelque soit la
    manière de le faire ) : c'est ici






<hr />                Cordialement            Bul        
Messages postés
12
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
20 février 2008

merci beaucoup pour ton aide si précieuse (comment ferait-on sans bultez ?)
je met tout ça en application et je reviens donner le résultat
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
31
>>comment ferait-on sans bultez ?
    d'autres intervenants répondraient ( et souvent bien mieux )
>>je reviens donner le résultat
    ça c'est bien ( que ça baigne ou pas ! )


<hr />                Cordialement            Bul        
Messages postés
12
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
20 février 2008

eh bien ça baigne !
juste une petite précision pour simplifier, les paramètres peuvent du style :
[test.htm?param1;param2;etc appel page test]
et du coté de la page test :
params = window.location.search.split(";"); // séparation des paramètres
param1 = params[0].substring(1,params[0].length); // pour supprimer le ?
param2 = params[1]; // les suivants sont épurés
etc = params[2];
et encore merci.
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
31
tu y mets ce que tu veux.
    seul le ? est nécessaire, quoique... # ( ou autres ) ça marcherait-y pas ???
?p1=valeur1&p2=valeur2.... c'est pour
    "ressembler" à ce qu'attend le langage sur le serveur,
    mais en fait , c'est une bête chaîne de caractères.
<hr />                Cordialement            Bul