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 :

Fonction openwindow.open


Sujet :

JavaScript

  1. #21
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    salut les insomniaques
    je ferais une petite remarque, outres toutes celles très intéressantes et riche d'enseignements déjà émises,... il manque un void, pas un vide un void pour encapsuler l'instruction...

    Sans le void, le risque est que dans la barre d'adresse on se retrouve avec une adresse du type javascript:instruction, ce qui, si l'exécution se fait, effacera la page en même temps que d'ouvrir la fenêtre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action='javascript:void(window.open("controle.php","validation","menubar=no, status=no, scrollbars=no, width=200, height=100"));'

  2. #22
    Membre éclairé Avatar de l.laurent60
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 276
    Par défaut
    Bonjour à tous,

    On avance ! On avance !
    Un grand merci à NoSmoking pour cette brillante idée Cette méthode résout le problème d'ouverture d'un page blanche avec l'action dans l'url... C'étais peut être un bug de ouf ! Mais voilà, c'est résolu ! c'est parfait !
    J'ai juste une dernière question : La popup qui s'ouvre ne reçoit pas les valeurs Poster par le formulaire, c'est peut être normal ?
    Sinon avez vous une autre méthode , par exemple mettre le $_POST en session et récupérer le tableau dans la popup ???

  3. #23
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par l.laurent60 Voir le message
    J'ai juste une dernière question : La popup qui s'ouvre ne reçoit pas les valeurs Poster par le formulaire, c'est peut être normal ?
    Sinon avez vous une autre méthode , par exemple mettre le $_POST en session et récupérer le tableau dans la popup ???
    Il est en GET actuellement le form ? (montre-nous comment il est écrit) (et même l'ensemble du form, histoire de voir les input, leur name, etc.)

  4. #24
    Membre éclairé Avatar de l.laurent60
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 276
    Par défaut
    C'est un formulaire bateau ! en POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form name="form" id="form" 
                     action='javascript:void(window.open("controle.php","validation","menubar=no, status=no, scrollbars=no, width=400, height=200"));'
                        method="post" onsubmit="return verifAdhesion()"><br/> 
     
     <td><input name="Nom" id="Nom" type="text" size="40" value="" /></td>

  5. #25
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Alors oui, c'est normal que les paramètres ne soient pas passés puisque tu court-circuites la soumission normale. C'est donc à toi de les ajouter à l'URL de destination.
    Ceci dit, globalement, ta façon de procéder, c'est vraiment crade... et fortement déconseillée. Imagine tes utilisateurs sans JavaScript (bon, d'accord, c'est rare, mais ça existe) ou ceux qui bloquent toute forme de pop-up (c'est moins rare), ils font comment ?

    Tu aurais grandement avantage à passer par l'événement onsubmit pour ouvrir la nouvelle fenêtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('about:blank', 'validation', 'params');
    puis conserver un action cohérent mais un target vers cette fenêtre
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="validation.php" target="validation">
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #26
    Membre éclairé Avatar de l.laurent60
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 276
    Par défaut
    Le problème est que je ne veux pas les passer dans l'url, d'une part les champs sont trop long et par discrétion je ne le souhaite pas.
    As tu un plan B... lol

  7. #27
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par l.laurent60
    As tu un plan B... lol
    Oui, lire les réponses qu'on te donne !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #28
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par l.laurent60 Voir le message
    As tu un plan B... lol
    > voir mon avatar

    Bon, sans déconner. Bovino proposait cette manière d'ouvrir la popup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('about:blank', 'validation', 'params');
    ...ce qui permet de passer tes paramètres dans une variable, donc pas dans l'URL

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getParametres() {
       var params = [];
       var f = document.getElementById("idDeTonForm");
       var input, inputs = f.getElementsByTagName("INPUT");
       for (var i = 0, iMx = inputs.length; i < iMax; ++i) {
          input = inputs[i];
          params[input.name] = input.value;
       }
       return params;
    }
    et ceci dans ta fonction liée à onsubmit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('about:blank', 'validation', getParametres());
    edit : solution erronée, ne pas appliquer

  9. #29
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Non, pas tout à fait Romain
    params, c'est la chaine de paramètres de la pop-up, mais après l'avoir ouverte, tu peux cibler le target du formulaire, donc la soumission se fera de façon classique et les paramètres POST seront disponibles
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #30
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Non, pas tout à fait Romain
    params, c'est la chaine de paramètres de la pop-up, mais après l'avoir ouverte, tu peux cibler le target du formulaire, donc la soumission se fera de façon classique et les paramètres POST seront disponibles
    mais quel boulet !

    Oui effectivement, je me rappelais mal de la syntaxe d'open

    J'ai rien dit

  11. #31
    Membre éclairé Avatar de l.laurent60
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 276
    Par défaut
    ok, c'est probablement la meilleur solution :
    J'ai dans mon formulaire un : onsubmit="return verifAdhesion()"
    j'imagine que le window.open('about:blank', 'validation', 'params'); doit être mis à la fin de la fonction ?
    Et je dois faire avant un var params=<?php $_POST ?> ?
    Et bien cela la méthode ?
    et dans la page contre je récupère ma variable $_POST

  12. #32
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par l.laurent60 Voir le message
    ok, c'est probablement la meilleur solution
    J'espere que tu ne parlais pas de ma dernière proposition

  13. #33
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Bovino Voir le message
    lire les réponses qu'on te donne !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #34
    Membre éclairé Avatar de l.laurent60
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 276
    Par défaut
    Merci à tous cette fois ça fonctionne lol

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/08/2008, 11h32
  2. fonction window.open capricieuse
    Par KiranoO dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/06/2008, 13h01
  3. Paramétre fonction Windows.open
    Par dfournier dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/12/2007, 16h01
  4. Paramètres de la fonction Document.Open VB/VBA
    Par B.ratak dans le forum VBA Word
    Réponses: 3
    Dernier message: 05/07/2007, 14h23
  5. Problème de titre avec la fonction window.open
    Par kloss dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/04/2005, 18h34

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