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

HTML Discussion :

Select automatique ouvrant une popup + POST


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Août 2005
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 852
    Par défaut Select automatique ouvrant une popup + POST
    Bonjour,

    Je cherche à ouvrir une popup en faisant un choix dans une liste déroulante. Voici le code simplifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <form method="post" name="active" action="" onsubmit="javascript:ouvrirPopup('popup.php', 'popup', 'yes', 'yes'); return false;">
        <input type="hidden" name="id" value="" />
        <select name="date" size="1" onchange="javascript:submit();">
            <option selected="selected">History : </option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>        
        </select>
    </form>
    Cela ne fait rien (aucune réaction lors de la sélection).

    J'ai aussi essayé d'ouvrir la popup directement depuis la liste (sans valider le form) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method="post" name="active" action="">
        <input type="hidden" name="id" value="" />
        <select name="date" size="1" onchange="javascript:ouvrirPopup('popup.php', 'popup', 'yes', 'yes'); return false;">
    ...
    Cette fois la popup s'ouvre bien mais les valeurs POST ne sont pas passées.

    Je précise que je ne veux pas de bouton de soumission (je veux garder la tête haute !) et que la fonction javascript fonctionne bien.

    Merci d'avance pour votre aide !

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" name="active" action="popup.php" target="newWin" onsubmit="window.open(this.action, 'newWin', 'width=800, height=600');">

  3. #3
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" name="active" action="popup.php" target="newWin" onsubmit="window.open(this.action, 'newWin', 'width=800, height=600');">
    +1 C'est la même logique qu'il faut utiliser d'ailleurs pours les liens ouvrant une popup pour rendre l'action exécutable en cas d'absence de JS.

    Je précise que je ne veux pas de bouton de soumission (je veux garder la tête haute !)
    Comment ça?

    La méthode que tu utilises est sans doute une des méthode les plus intrusive,
    les moins conventionnelle pour l'utilisateur et donc ergonomiquement défaillante.
    Risquée: outils/options de blocage de pop-up
    Et enfin peu accessible pour de multiples raisons...

  4. #4
    Membre éclairé
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Août 2005
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 852
    Par défaut
    Bonjour,

    C'est un développement pour intranet, cette méthode est une demande du responsable, et tous les postes seront configurés de la même façon, donc aucun risque de blocage

    Je vais tester cette solution.

    (pour la tête haute c'était juste une blague par rapport à la soumission, personnellement je n'ai rien contre la méthode )

    Edit : cela fonctionne, cela ouvre bien la page cible dans une nouvelle fenêtre, seulement cela n'ouvre pas une vraie popup en 800*600 comme indiqué dans les paramètres mais un nouvel onglet dans Firefox...

  5. #5
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Citation Envoyé par Jarodd Voir le message
    C'est un développement pour intranet, cette méthode est une demande du responsable, et tous les postes seront configurés de la même façon, donc aucun risque de blocage
    D'accord alors dans ce cas ça ne pose en effet presque plus de problème
    (c'est pour ça qu'il vaut mieux préciser le contexte dés le départ)


    Citation Envoyé par Jarodd Voir le message
    Edit : cela fonctionne, cela ouvre bien la page cible dans une nouvelle fenêtre, seulement cela n'ouvre pas une vraie popup en 800*600 comme indiqué dans les paramètres mais un nouvel onglet dans Firefox...
    Bisûnurs a dû oublier d'ajouter le return false pour empêcher la propagation de l'évènement, j'avais pas tilté non plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="window.open(this.action, 'newWin', 'width=800, height=600'); return false;">

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    Bisûnurs a dû oublier d'ajouter le return false pour empêcher la propagation de l'évènement, j'avais pas tilté non plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="window.open(this.action, 'newWin', 'width=800, height=600'); return false;">
    Non non, le return false empêche d'envoyer les valeurs en POST, donc le tableau d'arrivée sera vide.
    Il n'y a pas de propagation d'évènement comme le cas d'un lien, étant donné qu'il y a un target dans la balise form qui envoie justement l'utilisateur sur le popup et non dans la même fenêtre.

    Le problème du nouvel onglet plutôt qu'un popup provient de la désactivation de Javascript justement.

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

Discussions similaires

  1. Selection automatique dans une liste
    Par ptilemare dans le forum Langage
    Réponses: 7
    Dernier message: 26/08/2010, 21h56
  2. Selection automatique d'une ligne DBGrid
    Par Rserge dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2010, 22h49
  3. Desactiver la selection automatique d'une combobox
    Par Fabthebug dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 07/05/2008, 22h53
  4. Sélection automatique d'une ligne d'un select
    Par kira'an dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/11/2006, 16h58
  5. [JTable] selection automatique d'une ligne
    Par bibx dans le forum Composants
    Réponses: 4
    Dernier message: 17/06/2005, 11h59

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