[JS]Nouvelle fenetre qui appelle une autre
Résolu
mymemorial
Messages postés
59
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je voudrais créer le code d'une fenetre principale -un formulaire- qui, en cliquant sur le bouton, appelle une nouvelle fenetre et utilise/affiche les informations de ce formulaire.
Puis, dans cette nouvelle fenetre (appelons la fenetre2), un nouveau champ commentaire (donc un textarea) qui, en cliquand sur un autre bouton, nous conduit vers une 3ème fenetre ou sera affiché les données du formulaire (première fenetre) et le commentaire (2ème fenetre).
Je suis parvenu a faire le passage de la 1ère à la seconde sans problème.
Mon problème se situe au niveau du passage de la 2nd à la 3ème fenetre.
A chaque fois que je clique sur le bouton de la 2nd fenetre, je reviens au formulaire de ma première fenetre sans passer a la troisieme fenetre.
Voici le script que j'ai créé :
Merci d'avance pour toute aide =)
Je voudrais créer le code d'une fenetre principale -un formulaire- qui, en cliquant sur le bouton, appelle une nouvelle fenetre et utilise/affiche les informations de ce formulaire.
Puis, dans cette nouvelle fenetre (appelons la fenetre2), un nouveau champ commentaire (donc un textarea) qui, en cliquand sur un autre bouton, nous conduit vers une 3ème fenetre ou sera affiché les données du formulaire (première fenetre) et le commentaire (2ème fenetre).
Je suis parvenu a faire le passage de la 1ère à la seconde sans problème.
Mon problème se situe au niveau du passage de la 2nd à la 3ème fenetre.
A chaque fois que je clique sur le bouton de la 2nd fenetre, je reviens au formulaire de ma première fenetre sans passer a la troisieme fenetre.
Voici le script que j'ai créé :
<SCRIPT LANGUAGE="JavaScript"> function ouvrir2(){ //3eme fenetre fenetre2=window.close fenetre3=window.open("","") fenetre3.document.write("La matricule saisie: " +document.form.ma.value) fenetre3.document.write("<br>Le loisir : ") if (document.form.TV.checked) {fenetre3.document.write(" " +document.form.TV.name) } if (document.form.Cinema.checked) {fenetre3.document.write(" " +document.form.Cinema.name) } if (document.form.Lecture.checked) {fenetre3.document.write(" " +document.form.Lecture.name) } fenetre3.document.write("Le commentaire : " +c) } function ouvrir(){ //2eme fenetre fenetre2=window.open("","") fenetre2.document.write("La matricule saisie: " +document.form.ma.value) var c; fenetre2.document.write("<br>Le loisir : ") if (document.form.TV.checked) {fenetre2.document.write(" " +document.form.TV.name) } if (document.form.Cinema.checked) {fenetre2.document.write(" " +document.form.Cinema.name) } if (document.form.Lecture.checked) {fenetre2.document.write(" " +document.form.Lecture.name) } fenetre2.document.write("<form name=\"forms\"><br>Commentaire: <textarea name=\"text\"></textarea><br><br><input type=\"submit\" onclick=\"ouvrir2()\"></form>") c=fenetre2.document.forms.text.value; } </SCRIPT> <BODY> <Form name="form"> Matricule : <input type="text" name="ma"> <br> Loisirs :<br> <input type="checkbox" value="tv" name="TV">TV <input type="checkbox" value="ci" name="Cinema">Cinema <input type="checkbox" value="le" name="Lecture">Lecture <br> <input type="submit" onclick="ouvrir()"> </Form> </BODY> </HTML>
Merci d'avance pour toute aide =)
A voir également:
- [JS]Nouvelle fenetre qui appelle une autre
- Darkino nouvelle adresse - Guide
- Extreme download nouvelle adresse - Accueil - Outils
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Fenetre windows - Guide
- Fenêtre hors écran windows 11 - Guide
1 réponse
Bonjour,
Si j'ai compris tu veux depuis une page aller vers une deuxième, de celle-ci vers une troisième, sans les fermer ?
Pourquoi tu ne joues pas avec les attributs de form ?? tu as action pour envoyer les données vers une page et tu as target comme les liens pour ouvrir dans une nouvelle.
Exemple avec ces 3 pages :
page1 envoie des données à page 2
page2 récupère et envoie à page3
page3 récupère
Enfin si j'ai bien compris ^^
Sous Firefox ça ouvre dans un nouvel onglet. Sous IE une nouvelle fenêtre.
Si j'ai compris tu veux depuis une page aller vers une deuxième, de celle-ci vers une troisième, sans les fermer ?
Pourquoi tu ne joues pas avec les attributs de form ?? tu as action pour envoyer les données vers une page et tu as target comme les liens pour ouvrir dans une nouvelle.
Exemple avec ces 3 pages :
/**** page1.html ****/ Page 1 <form method='post' action='page2.html' target="_blank"> <input type="submit" name="envoyer" value="Vers page 2"> </form> /**** page2.html ****/ Page 2 <form method='post' action='page3.html' target="_blank"> <input type="submit" name="envoyer" value="Vers page 3"> </form> /**** page3.html ****/ Page 3 - Terminus
page1 envoie des données à page 2
page2 récupère et envoie à page3
page3 récupère
Enfin si j'ai bien compris ^^
Sous Firefox ça ouvre dans un nouvel onglet. Sous IE une nouvelle fenêtre.
En effet, tu as bien compris de quoi je parle, l'idée est là! ^^
Seulement, je me demandais si c'était possible de résoudre le problème du passage de la 2nd à la 3ème fenêtre via Javascript, et non seulement avec du HTML...
(Eh oui, c'est ca, avoir un prof' exigeant!! xD)
Mais je te remercie tout de même pour ton intervention, ca pourrait me servir pour plus tard! ^.^
Ensuite dans ouvri2 tu fais un windows.close pourquoi ?
Puis tu essaies de récupérer des champs inexistant donc normal que ça ne fait rien.
Essaie de mettre ces valeurs dans des input type='hidden'
En plus tu essaies de lancer la fonction ouvrir2 alors que si tu regardes le code source lors de l'ouverture de la deuxième page, tu n'as aucune fonction nommée ouvrir2 !! Donc il faut faire un document.write avec le code d'ouvrir2
Je vois pas mal d'erreur !!!
essaie de corriger ça déjà.
Alors :
1. Par rapport à 'form' et 'forms', il y'a deux formulaires : Le premier (matricule, loisirs) qui est 'form' sur la 1ère page, le second (commentaire) qui est 'forms' sur la 2nd page.
Dans ouvrir() je n'ai fait appel qu'au premier formulaire (form) tout en incluant le commentaire dans un nouveau (forms). Dans ouvrir2() par contre, je dois afficher les données de 'form' et 'forms' (le commentaire, que je dois saisir dans la 2nd page)
2. En ce qui concerne le window.close, bon, c'est juste facultatif j'avoue xD
J'avais pensé au fait que, quand on va ouvrir la 3ème page, il serait inutile de conserver la 2nd ouverte ? Vu que la 3eme contiendra les données déjà affichées dans la 2nd + le commentaire saisi dans la 2nd.
Enfin je ne sais pas, je crois que je vais l'enlever tout de même ^^
Euh par contre, déclarer la fonction ouvrir2() avant ouvrir(), je crois que le problème viendrait de là en effet! =)
Tu as parlé de document.write avec le code d'ouvrir2, pourrais-tu m'en parler un peu plus ? =)
En fait, est-ce possible d'ouvrir une nouvelle fenetre à partir d'une autre nouvelle fenetre a la base ?
J'ai testé un code basique, dans le genre :
avec dans le body un bouton qui appelle la fonction ouvrir1(), et la encore : Rien.
Donc ca ne vient définitivement pas des erreurs, je me trompe ? =)
La fonction ouvrir2() ne charge meme pas, est-ce une erreur de syntaxe par hasard ?
A l'intérieur toi, tu mets ton formulaire, mais tu ne mets pas de fonction javascript, ni les balises <html><body>...
Donc ce que tu peux faire dans un premier temps, à chaque page ouverte, regarde le code source de la page, et tu verras ce qu'il se passe.
ce que tu peux faire, c'est mettre chaque fonction Javascript dans des fichiers distinct tel que ouvrir() se trouve dans ouvrir.js, ouvrir2() dans ouvrir2.js
Ensuite dans la page principale au lieu de mettre tes deux fonctions, tu mets entre les balises<head>, <script src="ouvrir.js" type="text/javascript"></script>
jusque là, rien de compliqué.
Tu mets des champs cachés pour envoyer les anciennes valeurs, car quand tu ouvres une nouvelle fenêtres, ces données sont perdues (regarder le code source, TOUJOURS !!)
Bon c'est trop long à expliquer voilà un exemple dans ce Zip ^^ => http://dl.free.fr/getfile.pl?file=/TWWdfgHS
Merci beaucoup, ton exemple a été très clair et marche à perfection comme je veux =)
(J'aurais au moins appris a utilisé les input hidden aujourd'hui lol)
Je crois que c'est bon là ! ^^
Vraiment un grand merci l'ami, tes interventions ont été très utiles !! =D