Forum Clubic

Comuniquer une variable en JS entre 2 pages - JS ou PHP ?

Bonjour,

j’ai une page 1.php qui appelle par une popup 2.php.

dans 1.php, j’ai un champs texte “nucli” vide
dans 2.php, j’ai un formulaire qui me permet de choisir un nucli.

J’aimerais que lorsque le formulaire 2.php est posté (clic sur bouton), la variable du nucli qui a été choisie aille s’inscrire dans le champs texte de 1.php puis que la page 2.php soit fermée.

J’y connais pas grd chose en javascript dc si vous avez des ID…enfin je dis javascript mais peut-etre qu’en php c plus simple ou mieux ?

merci beaucoup !!

et bien tout simplement passé ta variable dans ton url

Si j’ai bien comprit, tu as deux pages ouvertes simultanément, et tu veux passer une variable de l’une à l’autre ?

C’est possible depuis la popup en utilisant la propriété opener (ou depuis la page ayant créé la popup en utilisant simplement le nom de cette dernière).

Par exemple, page principale :

<HTML>
<HEAD>
</HEAD>

<BODY>
<A href="#" onclick="window.open('2.htm','mapopup)">Ouvrir la popup</A>

<FORM name=test method=post>
<INPUT name=texte type=text>
</FORM>

</BODY>
</HTML>

Et le code de la popup :

<HTML>
<HEAD>
</HEAD>

<BODY>
<A href="#" onclick="opener.document.test.texte.value='b'">Modifier le formulaire</A>

</BODY>
</HTML>

Le click sur le lien dans la popup devrait écrire la lettre ‘b’ dans le champs du formulaire de la page principale. Tu n’as plus qu’à adapter le principe à ton cas :slight_smile:

En cas de problème, tu devrais pouvoir t’inspirer de ce code : http://www.rgagnon.com/jsdetails/js-0066.html

oui mais non :wink:
je ne veux pas reloader 1.php

:bounce: :bounce: J’essaye ça dès demain. merci :slight_smile:

p’tain trop cool :slight_smile: Ca marche nickel. merci !!

kookiz33, encore une question :

<FORM name=test method=post>
<INPUT name=texte type=text>
</FORM>

Ok pour ça, ça fonctionne aprfaitement come je disais mais en fait il est inutile d’afficher le résultat dans un input. Est-ce qu’il est possible d’afficher la valeur retournée simplement sous forme texte.
la honte, je suis sûr que c’est un truc tout con d’html mais je trouve pas la balise qui peut faire ça :frowning:

Si tu as sélectionné une valeur, tu voudra sûrement la conserver pour la renvoyer au serveur, il te faut donc:
un <input type=hidden name=…> dans ton form pour conserver la valeur, et une balise DIV ou SPAN identifiée pour afficher la valeur, que tu modifie avec innerhtml

<DIV id="unid"></DIV>
et en javascript:

document.getElementById(‘unid’).innerHTML=mavaleur;
document.forms[0].toto=mavaleur
exemple:
http://developpeur.journaldunet.com/tutori…html-lien.shtml

:slight_smile:

edit: correction de code

Merci de ta réponse.

En fait non, je n’aurais pas besoin de renvoyer la valeur…
Je récupère 2 données du formulaire, une ira dans un input type=“text” (c’est un code à 6 chiffres) et l’autre affiche juste le libellé lié à ce code.

ex :
<FORM name=test method=post>
<INPUT name=code type=text>652458
</FORM>
SOCIETE FRANCAISE DES POSTES (libellé texte du code à 6 chiffres)

J’espère me faire comprendre…

Pour reprendre l’exemple plus haut:
sur la fenêtre appelante:


<A href="#" onclick="window.open('popup.htm','mapopup')" >Ouvrir la popup</A>

<FORM name=test method=post>
<INPUT name=texte type=text>
</FORM>
<DIV id="testdesc">_</DIV>

dans la popup:


<BODY>
<div id="textDiv">tutu</div>
<script>
function validate(){
	opener.document.test.texte.value='b';
	opener.document.getElementById("testdesc").innerHTML = 'the description of b';
}	
</script>
<A href="#" onclick="validate()">Modifier le formulaire</A>
</BODY>

Comme ça, tu modifie le forumlaire et un evaluer affichée.
Note: je viens de me rappeller que javascript est case-sensitive et qu’on peut affecter n’importe quel attribut sur un objet, donc c’est innerHTML, InnerHtml ne renvoie pas d’erreur, mais ne fait rien!

merci bcp ! :slight_smile:

Je reviens encore à la charge.
Comment faire (je suis fin nul en JS dsl) pour afficher la mm valeur ds le value du

<input name="test" value=" ?? ">b</input>

?? devra etre = b
Comment faire ?

merci

j’ai bien trouvé ça : http://www.irt.org/script/408.htm
mais ça ne semble pas fonctionner :frowning: