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 :

Formulaire et ModalDialog


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut Formulaire et ModalDialog
    Bonjour à tous,

    J'ai un petit souci avec un formulaire dans une popup.

    J'ouvre une popup avec window.showModalDialog, qui affiche un formulaire. Lorsque je submit le formulaire, ça m'ouvre une nouvelle fenetre IE avec la page de destination dedans... sauf que je voudrais que la page de destination s'ouvre dans cette meme popup qui est déjà ouverte et forcément en focus vu que l'on vient de cliquer dessus pour valider le form.

    Sans mettre de target dans la balise form, ça ne fonctionne pas et avec target='nomdemapopup', ça ne marche pas mieux.


    je fais peut etre une erreur dans le code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="monform" action="enregistrer.php?id=5" method="post">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:monform.target='mapopup';monform.submit()">valider</a>

  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,
    un <A HREF> n'est pas le meilleur moyen de faire un submit(). C'est lui qui t'ouvre la nouvelle fenêtre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="monform.target='mapopup';monform.submit(); return false;">valider</a>
    A+

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Merci pour la réponse. Je ne savais pas que cette méthode était préférable. Néanmoins, elle ne fonctionne pas. :-(

    Mon code actuel qui ne fonctionne toujours pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="monform" action="enregistrer.php?id=5" target="mapopup" method="post">

  4. #4
    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
    Effectivement, il y avait plusieurs erreurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="document.forms['monform'].submit(); return false;">valider</a>
    Bref, c'est la même chose que le bouton type="submit".
    ... qui devrait fonctionner sans problème (et sans target) ...

    A+

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Oula, je suis dans le paté je n'avais pas vu, c'est plus propre comme ça mais normalement l'autre code devait fonctionner aussi. Ca ne règle toujours pas le problème. Peut etre que ça vient du ModalDialog qui ne supporte pas ou peu les formulaires ?

    Je vais tester avec une page toute bete pour voir.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Donc voici ce que je viens de tester :

    test.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="window.showModalDialog('test2.php','poptest','dialogWidth:700px;dialogHeight:470px;center:1;scroll:0;help:0;status:0');return false;">Test!</a>
    test2.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form id="popform" action="test3.php" method="post" target="poptest">
    	<input type="text" name="texte">
    	<input type="submit">
    </form>
    test3.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ca marche !!!
    <?php echo $_POST['texte']; ?>

    Avec ou sans le target, le résultat est le même.
    Une nouvelle fenetre s'ouvre avec le test3.php dedans.

    Lorsque je remplace window.showModalDialog... par window.open, ça marche nickel (a condition que le target soit correct ou non présent).

    En tout cas, merci de ton aide.

  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
    Citation Envoyé par madevilts Voir le message
    Avec ou sans le target, le résultat est le même.
    Une nouvelle fenetre s'ouvre avec le test3.php dedans.
    Sans target ?
    Et avec ?
    Etonnant ...

    A+

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Oui j'ai essayé sans le target. Lorsqu'on ne le met pas, il utilise la fenetre dans laquel est le formulaire. Ca n'a rien donné de mieux.

    Avec target="_self", pas mieux.

    test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="window.showModalDialog('test2.php');return false;">Test!</a>
    test2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form id="popform" action="test3.php" method="post" target="_self">
    	<input type="text" name="texte">
    	<input type="submit" value="click">
    </form>
    test3.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ca marche !!!
    <?php echo $_POST['texte']; ?>
    Ca doit etre une limite à ce type de popup. Dommage car il est bien pratique. Je vais voir pour enregistrer mon formulaire via un HtmlRequest car j'ai absolument besoin de ce type de popup.

    Si tu as d'autres idées de test... je suis tout à ton écoute.

  9. #9
    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 madevilts Voir le message
    je voudrais que la page de destination s'ouvre dans cette meme popup qui est déjà ouverte
    Citation Envoyé par madevilts Voir le message
    Oui j'ai essayé sans le target. Lorsqu'on ne le met pas, il utilise la fenetre dans laquel est le formulaire. Ca n'a rien donné de mieux.
    Ben faudrait savoir

    Peux-tu (re) préciser quel est le résultat attendu ?

    Le résultat du <form> doit s'afficher dans ta pop "modale" ou pas ?

    A+

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Ben faudrait savoir

    Peux-tu (re) préciser quel est le résultat attendu ?

    Le résultat du <form> doit s'afficher dans ta pop "modale" ou pas ?

    A+
    Oui le résultat du form doit s'afficher dans la pop "modale". Désolé si je n'ai pas été très clair.

    j'ai pensé qu'en ne mettant pas de target, il afficherait betement le résultat à la place du formulaire, c'est à dire dans la pop "modale".

  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 madevilts Voir le message
    Oui le résultat du form doit s'afficher dans la pop "modale". Désolé si je n'ai pas été très clair.
    C'est ce qui semblait être le cas, mais sans que ça te convienne :
    Citation Envoyé par madevilts Voir le message
    Oui j'ai essayé sans le target. Lorsqu'on ne le met pas, il utilise la fenetre dans laquel est le formulaire. Ca n'a rien donné de mieux.
    Pour résumer :
    pour afficher le résultat du form dans la pop (modale) dans laquelle il se trouve, dans le tag <form> il faut, soi ne pas mettre de target, soi mettre target="_self"

    A+

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    En fait, je voulais dire :

    Oui j'ai essayé sans le target. Lorsqu'on ne le met pas, normalement il utilise la fenetre dans laquel est le formulaire. Ca n'a rien donné de mieux, ça ne marche pas.

    Donc voila tout le problème, j'ai essayé les 2 (pas de target ou target="_self") et ça ne fonctionne pas. Quoi que je fasse, le résultat est toujours le meme : il ouvre une nouvelle fenetre.

    Par contre, dans le cas, ou j'utilise une popup normale "window.open", ça marche parfaitement avec :
    target = "_self"
    target = "mapopup"
    ou sans target

  13. #13
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Oui c'est un problème bien connu, je l'ai rencontré aussi et je n'ai trouvé qu'une seule solution c'est d'avoir un page toute simple avec juste un iframe et c'est elle que tu vas ouvrir quand tu appelles ton showModalDialog.

    Ensuite dans ton iframe tu affiches la page que tu veux. Et donc si tu as un lien sur cette page il va bien ouvrir la nouvelle page dans l'iframe et non pas dans une nouvelle fenêtre.

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    En fait, tu mets l'iframe dans ta modale si j'ai bien compris.

  15. #15
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Citation Envoyé par madevilts Voir le message
    En fait, tu mets l'iframe dans ta modale si j'ai bien compris.
    Oui c'est bien ca. Bon après si tu as des paramètres à récupérer de ta page mère à ta page modale et vice versa, cela engendre un peu plus de code mais rien d'insurmontable.

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Ok

    Merci à vous 2 pour votre aide !

  17. #17
    Membre chevronné Avatar de TucSale
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 264
    Par défaut
    bonjour,

    Pour les liens type '<a href="safe.html">link</a>' il faut ajouter dans le head
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <base target="_self" />
    en revanche dès que l'on introduit du javascript dans le lien cela ouvrira une nouvelle fenetre


    PS: showModalDialog() est implémenté dans le version 3 de firefox
    http://developer.mozilla.org/fr/docs...howModalDialog

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

Discussions similaires

  1. Création d'un formulaire sous flash?
    Par ultrakas dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 18h33
  2. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  3. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

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