2010-04-12 8 views
1

Salut J'ai besoin d'obtenir les noms et les valeurs des cases qui ont été cochées dans un nom de tableau sélectionné, je ne peux pas pour le faire fonctionner, ci-dessous est ma tentative, si quelqu'un pouvait clrifier quoi Je fais mal ce serait génial.jquery checkbox et tableau aide

//Location AJAX 
    //var dataObject = new Object(); 
    var selected = new Array(); 
    $('#areas input.radio').change(function(){ // will trigger when the checked status changes 
     var checked = $(this).attr("checked"); // will return "checked" or false I think. 
     // Do whatever request you like with the checked status 
     if(checked == true) { 
     /*$("input:checked").each(function() { 
       selected.push($(this).attr('name')+"="+$(this).val(); 
      }); 
       alert(selected)*/ 
       getQuery = $(this).attr('name')+"="+$(this).val()+"&location_submit=Next"; 
       $.ajax({ 
        type:"POST", 
        url:"/search/location", 
        data: getQuery, 
        success:function(data){ 
         alert(getQuery); 
         console.log(data); 
         // $('body.secEmp').html(data); 
        } 
       }); 
     } else { 
      //do something to remove the content here 
      alert("Remove"); 
     } 
    }); 
+2

Utilisez-vous Firbug? Si oui, obtenez-vous des messages d'erreur? Si vous ne l'utilisez pas, utilisez-le! :) –

Répondre

3

Il vous manque les parenthèses fermantes sur l'appel à selected.push. Il devrait être:

selected.push($(this).attr('name')+"="+$(this).val()); 

Sinon, cela semble bien.

Un autre, peut-être plus simple, façon de faire la même chose est d'utiliser map au lieu de each:

var selected = $('input:checked').map(function() { 
    return $(this).attr('name')+"="+$(this).val(); 
}).get(); 
+0

J'ai remarqué que juste au moment de la publication, je remarque que cela donne une matrice séparée par des virgules, j'envoie ce tableau comme une chaîne de requête est-il un moyen pour moi de remplacer la virgule par un & –

+0

@ sea_1987: Utiliser 'selected .join ('&') ' – interjay

+0

@interjay: selected.join ('&') ne montre aucun changement, il est toujours séparé par une virgule –