[jquery] .change + .each

.change + .each [jquery] - HTML/CSS - Programmation

Marsh Posté le 28-04-2014 à 18:26:56    

bonjour,
 
je souhaite récupérer des checkbox cochées pour ensuite faire une requete php en fonction des checkbox cochés:
 
debutant en jquery/js j'ai pondu "ça" :
 

Code :
  1. $("input[type='checkbox']" ).change(
  2.          function() {
  3.   $("input[type='checkbox']:checked" ).each(
  4.    function() {
  5.    var coche = coche + "_"+($(this).attr('value'));
  6.    });       
  7.   getBordereau(coche);
  8.     });

 
 
quand j'appelle ma fonction getBordereau je n'ai pas accès à la variable "coche", je ne vois plus du tout comment faire!
 
merci de votre aide!

Reply

Marsh Posté le 28-04-2014 à 18:26:56   

Reply

Marsh Posté le 02-05-2014 à 09:28:04    

normal, tu déclares la variable coche à l'intérieur de ta fonction qui appelée plusieur fois. IL faut la déclarer dans le change :

Code :
  1. $("input[type='checkbox']" ).change(
  2.          function() {
  3. var coche="";
  4. $("input[type='checkbox']:checked" ).each(
  5.    function() {
  6.        coche += "_"+($(this).attr('value'));
  7.    });     
  8.  getBordereau(coche);
  9.     });
 

Et encore mieux tu peux utiliser map pour ça :

Code :
  1. $("input[type='checkbox']" ).change(
  2.          function() {
  3. var coche=$("input[type='checkbox']:checked" ).map(
  4.    function() {
  5.        return $(this).val();
  6.    });     
  7.  getBordereau(coche.join('_'));
  8.     });


Map retourne un tableau qui contient les valeurs de retour de la fonction que ut a déclaré.
Ensuite pour joindre ces valeurs j'utilise join avec "_" comme séparateur.


Message édité par gatsu35 le 02-05-2014 à 09:28:15

---------------
Blablaté par Harko
Reply

Marsh Posté le 03-05-2014 à 11:44:21    

super merci, faut que je revois la portée des variable en JS...  
 
et merci pour les explications supplémentaires!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed