Partage
  • Partager sur Facebook
  • Partager sur Twitter

Checkbox et affichage résultat

Problème simple

    22 août 2011 à 13:03:06

    Bonjour à tous,

    J'ai différentes checkbox comme :

    <input type="checkbox" onclick="return Testcheck(this);" id="TV" class="ter" name="ter[]" value="TV">1<br />
    <input type="checkbox" onclick="return Testcheck(this);" id="CH" class="ter" name="ter[]" value="CH">2<br />
    <input type="checkbox" onclick="return Testcheck(this);" id="CSP" class="ter" name="ter[]" value="CSP">3<br />
    <input type="checkbox" onclick="return Testcheck(this);" id="APP" class="ter" name="ter[]" value="APP">4<br />
    


    J'aimerais savoir comment faire pour récupérer en JS la valeur de 2 cases cochées par exemple. Le principe est de faire ceci :

    $("p#varia").html('Variation : <b>'+$("input#variation").val()+'</b><br><br> Erreur : xxxxxxxxx');
    


    xxxxxxx = L'affichage des valeurs cochées. Je ne sais pas comment m'y prendre.

    Note : input#variation est un input de type text où je récupère la valeur

    Quelqu'un peut-il m'aider ?

    Merci par avance.

    Cordialement.

    Baky,
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      22 août 2011 à 13:27:04

      Tu récupères les checkbox (tous), avec un $('input.ter') en jQuery par exemple.

      Tu auras donc un tableau, qu'il te suffit de parcourir pour savoir lesquels sont cochés : .is(':checked') en jQuery toujours.

      Après il te suffit de créer une variable qui regroupe les inputs cochés, et de retourner sa valeur comme tu veux...

      Pas plus compliqué que ça ! :)
      • Partager sur Facebook
      • Partager sur Twitter
        22 août 2011 à 13:57:39

        Merci pour ta réponse, voilà ce que j'ai pour passer mes variables "checked' en $.post pour les insérer dans la BDD.

        var variation = $('input[id=variation]');
            var ter = $('input[name=ter]');					
            var ter = new Array(); 
            $("input:checked").each(function(id) { 
                 message = $("input:checked").get(id); 
                 ter.push(message.value); 
             });
        
        .........
        
        
        $.post(		
                'saveinfos.php',	
        	{					
        	variation: $("input#variation").val(),
        	ter : 'ter[]'					
        	}
        


        Pour ce que tu proposes, c'est bien :

        $("input:checked").val()
        


        non ?

        Et ensuite, je ne sais pas quoi faire.

        Merci pour ton aide.

        Baky,
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          22 août 2011 à 19:54:52

          Parce que tu envoies tes données en Ajax !?

          Pourquoi tu ne traites pas ça directement en PHP, au lieu de surcharger le client ?
          • Partager sur Facebook
          • Partager sur Twitter
            23 août 2011 à 0:45:27

            Tu veux dire avec un retour JSON ?

            Les données sont traitées en php et renvoyées ?

            Je ne vois pas comment tu veux que je traite ça en PHP. Le principe est de passer par du Javascript pour un affichage dynamique.

            Baky,
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              23 août 2011 à 0:49:40

              Bah si tu insères dans la BDD, tu as bien un traitement en PHP, non ?

              Pourquoi ne pas traiter ton formulaire directement à ce moment là, plutôt que du côté client ?
              • Partager sur Facebook
              • Partager sur Twitter
                23 août 2011 à 1:12:08

                Je vois, c'est un détail que j'ai omis, et au vu du code présenté, je comprends ton souci de performance.

                Ce qui est saisi va rentrer dans la BDD si l'utilisateur confirme une "$('#x').dialog". Dans cette boite de confirmation, je désire faire apparaître les 2 cases cochées (qu'il y en ait une ou deux). Dans tous les cas, le choix est limité à 2 maximum.

                Cette boite comprend donc le choix de confirmer ou d'annuler. On y retrouve :

                (code cité ci-dessus)
                $("p#varia").html('Variation : <b>'+$("input#variation").val()+'</b><br><br> Erreur : xxxxxxxxx');

                "xxxxx" représente les valeurs que je souhaite afficher.

                Baky,
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  23 août 2011 à 1:21:43

                  Ah oui, c'est plus clair comme ça ! :)

                  Essaie ça :
                  var checked = new Array();
                  var boxes = $('input.ter'); // On récupère toutes les checkboxes
                  foreach(boxes as box){ // On parcoure la liste
                  	if(box.is(':checked')) // Si la checkbox est cochée
                  		checked[] = box.val; // On ajoute sa valeur au tableau
                  }
                  


                  Tu auras normalement dans le tableau checked les valeurs des checkboxes cochées. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 août 2011 à 1:25:08

                    Merci à toi, ça m'a l'air pas mal, il y a une erreur dans ton code néanmoins.
                    Ton foreach, n'a pas l'air compatible. A dire vrai, je n'ai jamais vu de foreach en Jquery. Peux-tu m'en dire plus ?

                    Baky,
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      23 août 2011 à 1:52:55

                      Désolé, déformation du PHP ! :p

                      A force d'en bouffer pendant des semaines 10h par jour, on n'en sort plus...

                      Remplace le foreach par ça :
                      for(var box in boxes)
                      


                      Ça devrait le faire normalement... :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 août 2011 à 1:55:40

                        Je te comprends très bien ;)

                        J'ai un problème sur : checked[] = box.val; une erreur de syntaxe je pense.

                        Baky,
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          23 août 2011 à 13:58:54

                          .val()

                          C'est une fonction jQuery, pas un attribut. Autant pour moi ! :)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            23 août 2011 à 14:17:15

                            Salut, juste par curiosité @viki53, pourquoi tu ne fait pas
                            checked.push(box.val);
                            
                            ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              23 août 2011 à 15:12:56

                              Bonne question !

                              Je ne pense jamais à cette fonction, j'ai trop l'habitude du PHP. :p

                              Mais c'est vrai que c'est peut-être préférable, pour éviter les bêtises.

                              Par contre ne pas oublier que c'est .val(), ou .value. ;)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Checkbox et affichage résultat

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown