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 ?
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).
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
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
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
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)
<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!