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 :

[Form et popup] target d'un form ouvert dans une popup


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Points : 35
    Points
    35
    Par défaut [Form et popup] target d'un form ouvert dans une popup
    Bonjour

    J'ouvre un popup depuis une page (une frame) et j'aimerais que le resultat du formulaire qui s'y trouve soit affiché dans la frame qui a ouvert le popup.

    Je pense que c'est un probleme de target du formulaire.

    J'ai essayé de creer une fonction associée a l'evenement onClick du submit du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function redir()
    {
     document.monFormulaire.target=window.opener;
    }
    mais ca n'a pas l'air de fonctionner. Peut-etre que target est en lecture seule.

    J'ai regardé attentivement des posts relatifs a ce sujet, mais ça ne correspondait pas a ce que j'attendais.

    Voyez vous comment je pourrais faire ça?

    Merci.

    Florian

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Points : 35
    Points
    35
    Par défaut A l'aide!
    J'ai beau tout essayer, ce ne fonctionne pas.

    Vous voyez une raison pour que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.monFormulaire.target=window.opener;
    ne fonctionne pas?

    Au lieu de m'afficher le resultat dans ma fenetre principale, il m'ouvre une nouvelle fenetre.

    J'en ai marre de buter la dessus, est ce que quelqu'un peut m'aider?

    Florian

  3. #3
    Membre actif Avatar de hunter
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 208
    Points : 216
    Points
    216
    Par défaut
    j'ai pas testé mais la ce qui ce passe c'est que lorsque tu presse sur le submit ça touvre une nouvelle page c'est ça ??? avec rien dedans

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Points : 35
    Points
    35
    Par défaut
    oui, j'avais une fenetre navigateur qui s'ouvrait (avec le contenu de action=).

    J'ai trouvé le solution depuis, c'est tout simple.
    Il suffit de nommer la fenetre appelante avec self.name='nom_choisi' par exemple.
    Ensuite, dans la popup, il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    < form ... target='nom_choisi'>
    car target prend un string et pas un objet window.
    Le tour est joué, le resultat de la requete du formulaire s'affiche dans la page appelante.

    J'ai trouvé en trifouillant sur internet. C'était pas compliqué!

    Merci tout de même.

    A plus.

    Florian

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form action="../../index.php" onSubmit="window.close();" name="monForm" method="post">
     
      <input type="submit" value="OK">
     
    </form>
     
    <script type="text/JavaScript"> 
     
      window.opener.name = "openerName" ;
     
      document.monForm.target = window.opener.name ;
     
    </script>
    8)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 105
    Points : 61
    Points
    61
    Par défaut
    merci pour la réponse Dark.
    J'avais testé cette solution:

    dans la fenêtre appelante:
    dans la fenetre fille (popup):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function valider(){
            document.form1.target = window.opener.name ;
            document.form1.submit();
            self.close();
    }
    mais celà provoquait un probleme lorsque j'avais 2 onglets de la même page (les deux onglets étaient réactualisés avec le contenu du formulaire!!)

    Visiblement ta fonction marche sans souci:
    dans la fenetre fille (popup):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function valider(){
            window.opener.name="parent_name"; 
            document.form1.target = window.opener.name ;
            document.form1.submit();
            self.close();
    }

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 105
    Points : 61
    Points
    61
    Par défaut
    Correction faite, les deux versions provoquent les mêmes problemes.

    Avec le jeu d'essai suivant:
    1- on ouvre la page principale (quon nommera 1), on lance louverture de la popup, on valide le formulaire dans la popup : ce dernier est envoyé avec comme cible la fenêtre principale 1 .
    2 - On ouvre la même page sur un deuxième onglet (uq'on nommera 2), on effectue les mêmes opérations, et la cible est l'onglet 1 !!
    3 - On garde la configuration précédente, et on lance la popup à partir de l'onglet 1: lorsqu'on valide le formulaire, il est envoyé... sur l'onglet 2 !!!

    Vous avez le même probleme chez vous ou ça vient de moi?
    ça peut surement provenir du fait que je donne le même nom à mes fenêtres parentes, mais ça m parait bizarre...

    Je vais tester en nommant la fenêtre parente avec un nom aléatoire pour voir si ça change quelque chose (et je vais aussi tester sous IE pour voir le résultat qu j'obtiens).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 105
    Points : 61
    Points
    61
    Par défaut
    Bon ben le problême viendrais de ma supposition et semble être corrigé en nommant la fenêtre parente aléatoirement:
    dans le popup on aura donc une fonction de validation appelée par un onclick sur un boutton (par exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <SCRIPT LANGUAGE="JavaScript">
    <!--
     
    function valider(){
            window.opener.name=Math.floor(Math.random()*100)+1;
            //au lieu de :
            //window.opener.name="nom_fenetre_parente";
            document.form1.target = window.opener.name ;
            document.form1.submit();
            //window.opener.focus();
            self.close();
    }
    -->
    </SCRIPT>
    J'ai mis un random 100 pour avoir une plus faible probabilité d'avoir un même nom, mais on doit pouvoir le réduire.
    Si je ne me trompe pas, l'attribut name sert juste a identifier une fenêtre et n'a aucun rapport avec un titre de fenêtre ou autre, donc un nom aléatoire n'aura pas d'effet.

    Autre problême, si on veut ouvrir plusieurs popup à la fois, il faudrait plutot que la fenetre parente se nomme elle-même, et transmettre ce nom a toute popup "fille" ouverte par la suite.

    Dernière petite question:
    la ligne "window.opener.focus();" ne semble pas fonctionenr dans une fenêtre avec plusieurs onglets, quelqu'un connait-il la parade?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/11/2014, 17h00
  2. Réponses: 3
    Dernier message: 27/02/2012, 15h36
  3. User Form : Peut-on cacher ce qu'on écrit dans une zone (Mot de passe)
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/09/2008, 11h22
  4. form dans une popup
    Par amika dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/05/2005, 16h06

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