Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tente de faire une boucle javascript

Pour enregistrer les valeurs des checkbox dans un array

    9 janvier 2023 à 17:34:08

    Bonjour à tous,

    Je ne suis pas très doué en js mais j'ai un tableau avec une multitude de ligne dans laquelle il y a une checkbox à cocher si nécessaire.

    Je récupère les checkbox en faisait une boucle mais la valeur ne s'affiche qu'une après les autres alors que j'aimerais qu'elles se mettent dans un tableau à envoyer par requête ajax ou qu'elle se rajoute à une variable.

    function calculcheck()
    {
    	
    table="";
    var checkboxes = document.getElementsByName("check_inp");
    	for(var i=0; checkboxes.length; i++) 
    	{
    		if(checkboxes[i].checked) 
    		{ 
    		table+=table+checkboxes[i].value;
    		alert(table);
    		}
    		
    	}
    }

    J'ai donc besoin de votre aide, le but est donc de récupérer les différentes valeurs en une fois sans à travers un tableau soit une variable.

    Merci d'avance et bonne année à tous :)

    • Partager sur Facebook
    • Partager sur Twitter
      10 janvier 2023 à 1:46:37

      Bonjour, les valeur s'affiche les une après les autre parce que tu as placé le alert à l'intérieur de la boucle.

      Pour mettre les valeurs dans un tableau il te faut un tableau :magicien:.

      console.log est préférable à alert, car il ne bloque pas l'exécution du script est qu'il permet d'afficher des objets (notamment des tableaux)

      là où alert affichera "[Object Object]".

      Pour voir les console.log tu dois ouvrir la console de développement de ton navigateur, ce qui te permettras aussi de voir les éventuels messages d'erreur de Javascript.

      function calculcheck()
      {
           
      	const checkValues = [];
      	var checkboxes = document.getElementsByName("check_inp");
          
          for(var i=0; checkboxes.length; i++) {
              if(checkboxes[i].checked) {
                  checkValues.push(checkboxes[i].value);        	
              }
               
          }
          
          console.log(checkValues);
          
          return checkValues;
      }

      • Partager sur Facebook
      • Partager sur Twitter

      suggestion de présentation.

        11 janvier 2023 à 17:04:13

        Salut Samuel, merci pour ta réponse je vais regarder ça de plus près mais je viens de griller mon portable  du coup j'attends le nouveau que je devrais recevoir demain ou après. 

        J'ai essayé plein de truc pour obtenir le tableau comme table=[] .... et ça ne fonctionnait pas mais j'ai pas essayé ton code je te dis quoi au plus vite. Merci encore. 

        • Partager sur Facebook
        • Partager sur Twitter
          13 janvier 2023 à 15:30:04

          Salut Samuel,

          je viens de tester ton code mais je reçois le message d'erreur suivant dans ma console :

          checkboxes[i] is undefined


          <input type='checkbox' name='check_inp' id='$id_use'>


          J'ai déjà testé de plusieurs façon mais toujours ce même problème.


          Au passage "const" est t'il nécessaire ou indispensable.


          Merci d'avance.


          • Partager sur Facebook
          • Partager sur Twitter
            19 janvier 2023 à 0:21:07

            Bonjour LaurentBlanc,

            Le deuxième paramètre de la boucle for est la condition qui continue l'exécution de la boucle.

            Ici ton deuxième paramètre est 

            checkboxes.length

            checkboxes.length sera toujours égal à ... un certain nombre... ce qui est converti en true. Ta boucle tourne à l'infini

            La bonne condition est celle-ci

            for (var i = 0; i < checkboxes.length; i++) {

            La boucle continuera jusqu'à ce que i < checkboxes.length soit faux



            -
            Edité par NicolasMarafetti 19 janvier 2023 à 0:22:50

            • Partager sur Facebook
            • Partager sur Twitter
              19 janvier 2023 à 7:54:43

              Oui effectivement, il y avait une erreur dans l'en-tête de ta boucle que je n'avais pas vue, et que je n'ai pas corrigée du coup.

              Le code valide devrait être celui-ci:

              function calculcheck()
              {
                    
                  const checkValues = [];
                  var checkboxes = document.getElementsByName("check_inp");
                   
                  for(var i=0; i < checkboxes.length; i++) {
                      if(checkboxes[i].checked) {
                          checkValues.push(checkboxes[i].value);         
                      }
                        
                  }
                   
                  console.log(checkValues);
                   
                  return checkValues;
              }

              • Partager sur Facebook
              • Partager sur Twitter

              suggestion de présentation.

                31 janvier 2023 à 6:07:59

                Bonjour à vous,

                Je suis passé à autre chose et je m'y suis pris de façon différente, maintenant ça marche mais pas de la façon que je voulais, je reviendrais vers vous après avoir appliqué ton code lorsque je serais retourné sur cette page.

                Si ça ne va pas je reviendrais vers vous.

                Passez une bonne journée.

                • Partager sur Facebook
                • Partager sur Twitter

                Tente de faire une boucle javascript

                × 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