IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

recharger la page d'appel d'une popup à la fermeture de celle ci


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut recharger la page d'appel d'une popup à la fermeture de celle ci
    Bonjour,

    Sur mon site, il y a la possibilité d'ouvrir une popup avec un formulaire, j'aimerais que lorsque l'on valide le formulaire de la popup, celle ci se ferme et qu'il y ai un rechargement de la page qui a permis de l'appeler (avec les bon paramètres GET dans l'url).

    Actuellement, la validation du formulaire entraîne la fermeture de la popup et l'ouverture d'un nouvel onglet avec les bon paramètres GET dans l'url. lorsque je relance la popup sur le nouvel onglet et que je revalide le formulaire, l'onglet se ferme si il y a modification du formulaire et il y a à nouveau ouverture d'un onglet correspondant au formulaire envoyé. Voici le code permettant l'envoi du formulaire de la popup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="get" enctype="multipart/form-data" target="_blank" action="pageMere.php" onClick="javascript:window.opener.close();" onSubmit="javascript:self.close('MaPopup');">
    Avez vous des suggestions pour m'aider à résoudre ce petit problème ?

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    tu peux utiliser un setTimeout()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    onSubmit="setTimeout(function() {opener.location.reload();
      self.close('MaPopup');
    }, 2000);">
    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    merci pour ta réponse ! J'ai essayé avec le code que tu m'as donnée mais cela ne fonctionne toujours pas, ça me fait la même chose qu'avec mon ancien code je pense que le problème vient du fait que je n'indique pas la page mère dans action. J'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="MaPageMere.php"
    qui est une page de mon site mais je ne fait pas directement référence à la page qui a ouvert la popup. il me semble qu'il y a une histoire de propriété window.opener a utiliser mais je ne sais malheureusement pas comment

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    et par le onbeforUnload ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onbeforeunload="self.opener.location.reload()"
    dans le body de la fille

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par DAGDD Voir le message
    je pense que le problème vient du fait que je n'indique pas la page mère dans action.
    Je crois que tu confonds ici "page" (les .php stockés sur ton serveur) et "fenêtre" (la page "mère", la page contenant le form, la pop).
    S'il n'y a pas confusion, c'est qu'il te suffit d'indiquer dans le <form>.

    Sinon, par contre, j'avais été un peu approximatif

    Je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="opener.location.reload(); return true;"
    devrait fonctionner (mais est-ce bien ce que tu voulais ?).
    Par contre, pour refermer la page du form après sa soumission, il faudrait le faire dans la page cible du form.
    Donc dans le <body> de pageMere.php il faudrait ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onload="self.opener.close();"
    A+

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    et par le onbeforUnload ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onbeforeunload="self.opener.location.reload()"
    dans le body de la fille
    Cette fois ma page se recharge mais j'ai toujours l'ouverture d'une autre page et les paramètres GET ne sont pas dans la page mère mais dans le nouvel onglet qui s'ouvre. On s'approche mais il y a toujours un truc qui doit m'échapper

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Tu as essayé ça ?
    Citation Envoyé par E.Bzz Voir le message
    il te suffit d'indiquer dans le <form>.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    oui j'ai également changé cela. j'avais:
    j'ai mis comme tu m'as dit mais j'ai pas vu de changement XD

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Arf !
    Réflexion faite, je ne suis plus sûr que ça fonctionne en tant que target du <form>, le _opener ...

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="this.form.target=self.opener"
    ???

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    même résultat mais cette fois ma page mère ne se recharge plus

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    là mère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <style type="text/css">
    var fille
    </style>
    </head>
    <body onload="alert('reload')">
    <input type='button' onclick="fille=window.open('daughter1.htm','')" value="go" />
    </body>
    </html>
    la fille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    </head>
    <body onbeforeunload="self.opener.location.reload()">
    <form name="myform" action="javascript:self.opener.fille.close()" />
    <input type="submit" value="go" />
    </form>
    </body>
    </html>
    j'ai bien un alert reload sur le submit ...

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Je viens de me rendre compte que cela fonctionne partiellement:

    Je résume ce que j'ai touché:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <body onbeforeunload="self.opener.location.reload()">
    ...
    <form method="get" enctype="multipart/form-data" target="_opener" action="MaPage.php" onClick="javascript:window.opener.close();" onSubmit="javascript:self.close('Popup');" onSubmit="this.form.target=self.opener">
    rq: MaPage.php est une page du site que j'ai choisit arbitrairement car je n'arrive toujours pas à récupérer directement la page qui a ouverte la popup

    Avec ce code, voilà ce qui se passe:

    J'ouvre la popup, je fais mes modifications et je valide le formulaire, cela ouvre un nouvel onglet avec les bons paramètres GET, la page initiale reste ouverte mais ne se recharge pas. Le point suivant est inréressant: lorsque je vais sur la page initiale, que j'ouvre à nouveau la popup, que je modifie le formulaire et que je le renvoie, l'onglet qui avait été ouvert lors de l'envoi du premier formulaire est rechargé et les nouveaux paramètres GET sont placés correctement dans l'url. C'est proche de ce que je souhaite sauf que je voudrais que tout se passe dans le même onglet...

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    J'ai posté en même temps que toi XD je vais essayer ce que tu suggère

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="javascript:window.opener.close();"
    ben si tu fermes l'opener ??? en meêm temps que tu lui fait un refresh ???

  16. #16
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    De plus, pour info, il n'y a pas de paramètre à préciser pour le close()(le "self" indique déjà la fenêtre courante)

    A+

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="javascript:window.opener.close();"
    ben si tu fermes l'opener ??? en meêm temps que tu lui fait un refresh ???
    En rectifiant cela, ça marche mais toujours dans le cas ou j'ai validé une première fois le formulaire et qu'un nouvel onglet s'ouvre. Dans le nouvel onglet, si j'ouvre le formulaire, sa modification et son renvoie entraîne le rechargement de cet onglet. Pourquoi ça ne marche pas la première fois ?

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="get" enctype="multipart/form-data" action="MaPage.php" onSubmit="self.close();" >
    avec le onbeforeunload devrait suffire

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    ça ne change rien ici XD j'ai ce code pour ma popup mais ça me fait toujours pareil (j'ai ce que tu m'avais dit de mettre aussi dans le onbeforeunload dans le code de ma popup)

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    d'autres part, lesemble avoir son importance car quand je l'enlève, j'ai ouverture d'un nouvel onglet à chaque envoi de formulaire alors que si je le met, j'ai le problème d'ouverture d'un nouvel onglet seulement au premier envoi du formulaire.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/03/2010, 14h48
  2. Réponses: 1
    Dernier message: 26/02/2007, 09h44
  3. Problème de retour aprés l'appel d'une popup
    Par PADAWANN33 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2006, 15h53
  4. Réponses: 1
    Dernier message: 22/12/2005, 17h28
  5. Rechagement de page vers ancre dans une popup
    Par cyber6ou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/11/2005, 12h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo