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

jQuery Discussion :

Récupérer multiples valeurs


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmarketer
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Par défaut Récupérer multiples valeurs
    Bonjour à tous!

    Je bloque depuis pas mal de temps sur un problème lié à la récupération des valeurs en utilisant le JS.
    Dans une liste de choix à sélectionner, je récupère qu'une valeur, même si plusieurs sont sélectionnés... Je souhaiterais récupérer toutes les valeurs sélectionnées (<li id="valeur">Choix<li>). Pouvez-vous m'aider?

    Le code :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    $(document).ready(function() {
      $(function(){
        $(‘#bouton ul li').click(function(){
          window.choice = this.id;
          //$('bouton ul li').removeClass('selected');
          $(this).addClass('selected');
          }); 
     
          $('#bouton ul li').mouseover(function(){
          $(this).addClass('over');
          });
     
          $('#bouton ul li').mouseout(function(){
          $(this).removeClass('over');
        });
     
      });
    }); 
     
      function setChoice(){
        if(!$(‘#bouton ul li.selected').click()){
          $(‘#result').val(1);
          }else{
            // set the value of the hidden input field
            $(‘#result').val(window.choice);
          }
      }

    Je vous remercie par avance!

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Salut,

    Vraisemblablement, vu la ligne de code commentée ligne 5, il s'agit d'un code prévu pour un seul élément sélectionné qui a été maladroitement modifié pour essayer de gérer une sélection multiple. Ici tu utilises une seule variable globale (window.choice) et un seul champ caché pour stocker l'information du champ sélectionné, donc en toute logique c'est le dernier élément cliqué qui est enregistré dans le champ caché du formulaire.

    Question bête, pourquoi ne pas se servir de l'élément standard <select multiple> ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmarketer
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Par défaut
    Merci pour cette réponse. Effectivement, à la base, c'était prévu pour ne garder qu'une seule valeur... Est-il possible donc de récupérer toutes les valeurs qui sont sélectionnées (à la place de window.choice)?
    Oui, c'est certain qu'un simple "select multiple" serait bien plus simple mais pour des raisons de "présentation", c'est cette solution qui a été choisie...

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Voilà en jQuery comment mettre la liste des ID sélectionnés dans ton champ caché, séparés par une virgule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function setChoice(){
        $("#result").val($("#bouton ul li.selected").map(function(i,li){ return li.id; }).join(","));
      }
    Plus besoin de window.choice avec ça

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmarketer
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Par défaut
    Bonsoir,

    Merci pour votre réponse.
    J'ai essayé, mais je n'arrive pas à récupérer les valeurs sélectionnés...
    Voici le nouveau code et juste en dessous l'ancien :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <input name="result" id="result" type="hidden" />
    <div id="bouton">
      <ul>
        <li id="Choice 1">Choice 1</li>
        <li id="Choice 2">Choice 2</li>
        <li id="Choice 3">Choice 3</li>
        <li id="Choice 4">Choice 4</li>
        </ul>
    </div>
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $(document).ready(function() {
      $(function(){
        $(‘#bouton ul li').click(function(){
          window.choice = this.id; // A supprimer ou à remplacer?
          //$('bouton ul li').removeClass('selected');
          $(this).addClass('selected');
          }); 
     
          $('#bouton ul li').mouseover(function(){
          $(this).addClass('over');
          });
     
          $('#bouton ul li').mouseout(function(){
          $(this).removeClass('over');
        });
     
      });
    }); 
     
    function setChoice(){
        $("#result").val($("#bouton ul li.selected").map(function(i,li){ return li.id; }).join(","));
      }
     
      }


    L'ancien code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <input name="result" id="result" type="hidden" />
    <div id="bouton">
      <ul>
        <li id="Choice 1">Choice 1</li>
        <li id="Choice 2">Choice 2</li>
        <li id="Choice 3">Choice 3</li>
        <li id="Choice 4">Choice 4</li>
        </ul>
    </div>
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    $(document).ready(function() {
      $(function(){
        $(‘#bouton ul li').click(function(){
          window.choice = this.id; 
          //$('bouton ul li').removeClass('selected');
          $(this).addClass('selected');
          }); 
     
          $('#bouton ul li').mouseover(function(){
          $(this).addClass('over');
          });
     
          $('#bouton ul li').mouseout(function(){
          $(this).removeClass('over');
        });
     
      });
    }); 
     
      function setChoice(){
        if(!$(‘#bouton ul li.selected').click()){
          $(‘#result').val(1);
          }else{
            // set the value of the hidden input field
            $(‘#result').val(window.choice);
          }
      }
     
    </script>

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Je ne comprends absolument rien au code HTML. Ce n'est pas un"select multiple", c'est quoi ?

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. récupérer les valeurs d'une zone de liste à sélection multiple
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 09/07/2009, 21h19
  2. Réponses: 1
    Dernier message: 30/10/2007, 16h30
  3. Réponses: 4
    Dernier message: 13/11/2006, 17h49
  4. [JSP] Récupérer les valeurs d'un SELECT multiple
    Par ran_hery dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 15/05/2006, 15h56
  5. Récupérer les valeurs d'un <select> multiple
    Par vg33 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/10/2005, 11h38

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