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 :

submit dans une balise select (onchange)


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut submit dans une balise select (onchange)
    Bonjour tout le monde !

    Voici mon petit bout de code problématique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form id="form_vu" action="view_users.php" method="post">
       <select id="form_select" name="filter" onchange="document.getElementById('form_vu').submit()" >
          <option value="ts" "selected">Tous</option>
          <option value="am" >Administrateurs</option>
          <option value="mb" >Membres</option>
       </select>
       <input type="submit" id="envoi" name="submit" value="OK" float="left">
       <input type="hidden" name="submitted" value="TRUE">
       <script>document.getElementById('envoi').style.display = 'none';</script>
    </form>
    <?php echo '<p>envoyé ? -> '.(isset($_POST['submitted'])?'oui':'non').'</p>'; ?>
    la balise <script> sert à masquer le bouton "submit" si javascript est activé chez le client

    Le problème, c'est que $_POST est retourné vide (j'obtiens "envoyé ? -> non" à l'écran...)

  2. #2
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, le changement effectif intervient en fait après le déclenchement de l'événement, il faut donc faire une légère temporisation
    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Et comme on fait ça ? (je débute !...)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Bon, j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange=setTimeout("document.getElementById('form_vu').submit()",1000)>
    mais si j'ai bien compris, c'est normal que ça ne marche pas puisque PHP=server et JS=client donc impossible de temporiser la récupération dans le $_POST avec cette méthode...

    J'ai essayé de temporiser le PHP avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="form_vu" action="<?php sleep(1); ?>view_users.php" method="post">
    mais ça ne marche pas non plus...
    J'ai bien une temporisation au chargement de ma page mais plus quand je choisis une option dans mon select !

    Quelqu'un a une idée ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Changement de tactique !

    je modifie mon select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="form_select" name="filter" onchange="submitTags();" >
    avec une fonction JS définie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function submitTags(){
     
        var btnSubmitTags = document.getElementById("envoi");
     
        // clic envoyé par le programme
        btnSubmitTags.click();
      }
    remarque : "envoi" est l'ID de mon bouton submit (celui qui est caché si javascript est activé chez le client ou affiché si javascript désactivé)

    TADA !!
    ça marche

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

Discussions similaires

  1. Nombre d'option maximum dans une balise select (Bug IE)
    Par Fourche dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 16/12/2008, 15h33
  2. liens dans une balise select
    Par tabouet dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/01/2008, 12h07
  3. [XHTML] Title dans une balise select ne marche pas
    Par mcdelay dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 13/08/2007, 11h10
  4. [Tableaux] code php dans une balise <select>
    Par bigjeef dans le forum Langage
    Réponses: 7
    Dernier message: 06/04/2007, 00h58
  5. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03

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