HELP ! Envoi de données d'un formulaire dans une nouvelle fenetre
Posté : 13 nov. 2018, 17:45
Bonjour à toutes et tous
Avant que je jette mon ordi par la fenêtre, je vous appelle à l'aide.
Cela me fiche la honte tellement c'est du javascript de base mais je n'y arrive pas.
Il y a 8 ans j'ai créé un formulaire (simplifié ici : http://www.elisabethmasset.fr/ARCHIVES/commande.htm) qui, une fois validé, ouvrait un pop up reprenant différents éléments du formulaire. J'utilisais la méthode "POST", et j'accédais aux champs du formulaire de la fenêtre appelante par des codes comme ça :
variable1=opener.document.getElementsByName("champ1");
Cela marche toujours très bien, vous pouvez tester en entrant des quantités dans les champs idoines. (et voir le javascript dans le code source du pop up)
Cette année je refais une petite boutique mais présentée différemment.
J'ai procédé exactement de la même façon, en reprenant le formulaire original et en l'adaptant. Le formulaire (ultra simplifié) est là : http://www.elisabethmasset.fr/ARCHIVES/ ... tique2.htm
Lorsqu'on valide le formulaire on active cette fonction :
function valid()
{
nbc=document.getElementsByName("objet_1");
totalc=document.getElementsByName("objet_1_montant");
titre=document.getElementsByName("nom_1");
var donneea=new Number(nbc[0].value);
var donneeb=new Number(totalc[0].value);
var donneec=titre[0].value;
document.write(donneec+", quantité : "+donneea);
document.write("</br>Pour un total de : "+donneeb);
window.open('recap_commandenew.htm',"NewWindow","width=750,height=500,scrollbars=yes");
}
Les lignes avant ouverture du pop up me permettent pour l'instant de vérifier que j'ai bien nommé et manipulé mes variables, et c'est ok.
Dans le pop up, http://www.elisabethmasset.fr/ARCHIVES/ ... ndenew.htm, je reprends ces mêmes lignes, mais en mettent "opener" devant les "document", comme la solution qui marchait il y a 8 ans ! Mais là, ça ne marche pas !!!!
<script language="javascript">
nbc=opener.document.getElementsByName("objet_1");
totalc=opener.document.getElementsByName("objet_1_montant");
titre=opener.document.getElementsByName("nom_1");
var donneea=new Number(nbc[0].value);
var donneeb=new Number(totalc[0].value);
var donneec=titre[0].value;
document.write(donneec+", quantité : "+donneea);
document.write("</br>Pour un total de : "+donneeb);
</script>
MAis qu'est-ce qui se passe ? Pourquoi ça ne marche pas alors que la logique est la même ? Qu'es ce que j'ai loupé ou mal repris ?
Indice : le formulaire initial, ça ne marche qu'en ligne, aucune idée de la raison. POST ou GET, pareil.
Merci de votre aide !!
Zab
Avant que je jette mon ordi par la fenêtre, je vous appelle à l'aide.
Cela me fiche la honte tellement c'est du javascript de base mais je n'y arrive pas.
Il y a 8 ans j'ai créé un formulaire (simplifié ici : http://www.elisabethmasset.fr/ARCHIVES/commande.htm) qui, une fois validé, ouvrait un pop up reprenant différents éléments du formulaire. J'utilisais la méthode "POST", et j'accédais aux champs du formulaire de la fenêtre appelante par des codes comme ça :
variable1=opener.document.getElementsByName("champ1");
Cela marche toujours très bien, vous pouvez tester en entrant des quantités dans les champs idoines. (et voir le javascript dans le code source du pop up)
Cette année je refais une petite boutique mais présentée différemment.
J'ai procédé exactement de la même façon, en reprenant le formulaire original et en l'adaptant. Le formulaire (ultra simplifié) est là : http://www.elisabethmasset.fr/ARCHIVES/ ... tique2.htm
Lorsqu'on valide le formulaire on active cette fonction :
function valid()
{
nbc=document.getElementsByName("objet_1");
totalc=document.getElementsByName("objet_1_montant");
titre=document.getElementsByName("nom_1");
var donneea=new Number(nbc[0].value);
var donneeb=new Number(totalc[0].value);
var donneec=titre[0].value;
document.write(donneec+", quantité : "+donneea);
document.write("</br>Pour un total de : "+donneeb);
window.open('recap_commandenew.htm',"NewWindow","width=750,height=500,scrollbars=yes");
}
Les lignes avant ouverture du pop up me permettent pour l'instant de vérifier que j'ai bien nommé et manipulé mes variables, et c'est ok.
Dans le pop up, http://www.elisabethmasset.fr/ARCHIVES/ ... ndenew.htm, je reprends ces mêmes lignes, mais en mettent "opener" devant les "document", comme la solution qui marchait il y a 8 ans ! Mais là, ça ne marche pas !!!!
<script language="javascript">
nbc=opener.document.getElementsByName("objet_1");
totalc=opener.document.getElementsByName("objet_1_montant");
titre=opener.document.getElementsByName("nom_1");
var donneea=new Number(nbc[0].value);
var donneeb=new Number(totalc[0].value);
var donneec=titre[0].value;
document.write(donneec+", quantité : "+donneea);
document.write("</br>Pour un total de : "+donneeb);
</script>
MAis qu'est-ce qui se passe ? Pourquoi ça ne marche pas alors que la logique est la même ? Qu'es ce que j'ai loupé ou mal repris ?
Indice : le formulaire initial, ça ne marche qu'en ligne, aucune idée de la raison. POST ou GET, pareil.
Merci de votre aide !!
Zab