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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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

    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
    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
    Membre confirmé
    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
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    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
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert éminent

    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
    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
    Membre confirmé
    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
    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

    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
    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
    Membre confirmé
    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
    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
    Membre confirmé
    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
    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.

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    tu es contradicatoire dans ton code ...

    target indique la destination de la soumission du form ...
    tenter de le mettre en opener revient à ce que la page de destination du form s'ouvre dans l'opener qui va docn changer de location.href . Quelle utilité alors de vouloir reloader la mère ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Expert éminent

    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
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    tu es contradicatoire dans ton code ...
    Oui mais je pense que c'est le résultat d'une confusion sur les termes employés
    Citation Envoyé par E.Bzz Voir le message
    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).
    A+

  12. #12
    Membre confirmé
    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
    Par défaut
    tu veux dire que le fait d'avoir permet de mettre a jour la page mère avec les bons paramètres ? ce qui rend inutile d'essayer de recharger la page mère ? Je ne vois pas ce qu'il faut changer dans mon code

  13. #13
    Membre confirmé
    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
    Par défaut
    Je vous explique plus en détails le fonctionnement de mon site:

    l'accès à ma popup se fait depuis un menu qui est un fichier php comprenant seulement des liens dont celui qui ouvre la popup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'" onClick=\'javascript:window.open('popup.php','',resizable=no, location=no, top='.$top.', left='.$left.', width=400, height=400, menubar=no, status=no, scrollbars=no, directories=no);return false;\' class="lien">Affichage</a>
    On est au départ sur une page admin.php et on peux donc ouvrir la popup.
    Voici le code de la popup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
    <head>
    	<title>Accueil</title>
    	<link rel="stylesheet" href="../../abcstyle.css">
    </head>
    <body onbeforeunload="self.opener.location.reload()">
    	<hr><div align="center"><strong><font color="#999999" size="-1">P&eacute;riodes</font></strong></div>
    			<form method="get" enctype="multipart/form-data" target="_opener" onSubmit="javascript:self.close();" onSubmit="this.form.target=self.opener">
     
    				<input type='hidden' name='posted' value='1' />
    				<td align="center" colspan="2"><input type="submit" value="Valider" class="button1"></td>
     
    			</form></body></html>
    Si ça peut vous aider à comprendre ....

  14. #14
    Expert éminent

    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
    Par défaut
    Alors il y a quelques "détails" qu'il faudrait régler afin d'éliminer les effets de bord potentiels

    Tu ne peux avoir qu'un seul onsubmit pour un <form> (de manière général, tu ne peut avoir qu'une seule fois un attribut HTML dans une même balise). Un seul des 2 est pris en compte.
    Les <td> ne peuvent être utilisés qu'à l'intérieur de balises <table> </table>. Pour ce point, remplace juste "td" par "span" ...

    A+

  15. #15
    Expert éminent

    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
    Par défaut
    Citation Envoyé par DAGDD Voir le message
    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.
    Je crains qu'il faille nous montrer plus de code pour comprendre

    Celui de chaque page impliquée, et si besoin (car besoin il semble y avoir), le code d'une même page pour chaque appel, puisque au moins l'une d'elle semble avoir un comportement différent en fonction du contexte (si c'est la première fois qu'elle est appelée ou non).

    A+

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