2009-10-19 8 views
0

Je travaille pour obtenir chaque valeur de l'élément vérifié et les poster à PHP. Mais il obtient seulement la première valeur d'un seul élément coché.comment obtenir la valeur de l'élément vérifié dans la boucle

ici est

$("#conf").click(function(){ 
    var count = $("input:checked").length; 
    for(i = 0; i < count; i++) { 
     a = $("input:checked").val(); 
    $.post("reqs.php?act=confirm", { ID: a }, function(data) { }); 
    $('#'+a).parents(".req") 
     .animate({ backgroundColor: "#fbc7c7" }, "fast") 
     .animate({ opacity: "hide" }, "slow"); 
    } 
}); 

Et HTML

<?php while ($info = mysql_fetch_assoc($result)) { ?> 
<tr class="req"> 
    <td style="width: 29px"> 
     <input name="confirm" type="checkbox" id="<?php echo $info['ID']; ?>" value="<?php echo $info['ID']; ?>" /> 
    </td> 
    <td style="width: 70px" class="style5"><?php echo $info['email']; ?></td> 
    <td style="width: 72px" class="style5"><?php echo $info['name']; ?></td> 
    <td style="width: 88px" class="style5"><?php echo $info['username']; ?></td> 
    <td style="width: 76px" class="style5"><?php echo $info['country']; ?></td> 
    <td style="width: 76px" class="style5"><?php echo $info['bus']; ?></td> 
    <td style="width: 67px" class="style5"><?php echo $info['website']; ?></td> 
    <td style="width: 97px" class="style5"><?php echo $info['music']; ?></td> 
    <td style="width: 78px" class="style5"><?php echo $info['radio']; ?></td> 
</tr> 
<?php } ?> 

Comment puis-je obtenir la valeur des éléments sélectionnés dans cette boucle?

Merci

Répondre

1

changement

a = $("input:checked").val(); 

à

a = $("input:checked").eq(i).val(); 

Vous obtiendrez la valeur pour chaque élément ultérieur.

Et utilisez Firebug! :)

+0

thx, c'est ce que je cherchais! –

1
$("input:checked").each(function() { 
    alert($(this).val()); 
}); 
1

Vous devez itérer sur tous les éléments vérifiés, vous pouvez utiliser $.each, puis ajouter les résultats à un objet et après cet objet au serveur:

$("#conf").click(function(){ 
    var data = {}; 
    $('input:checked').each(function() { 
    var el = $(this); 
    data[el.attr('id')] = el.val(); 
    }); 

    $.post("reqs.php?act=confirm", data, function(response) { }); 
}); 

Les données l'objet sera formé par des paires clé/valeur contenant l'ID/valeur des éléments vérifiés.

+0

Devrait utiliser l'attribut 'name' au lieu de l'ID. A part ça, bonne réponse. –

+0

@Josh, oui d'accord, j'ai utilisé l'attribut id car il semble que l'OP affecte une valeur différente qu'il est prêt à utiliser. 'id =" "' – CMS

+0

cela ne fonctionne pas, je ne comprends pas, j'ai changé pour "nom" attr comme vous avez écrit mais pas de chance –

0

Mieux encore, laissez la magie du travail jQuery pour vous:

$("#conf").click(function(){ 
    $("input:checked").each(){ 
    var a = $(this).val(); 
    $.post("reqs.php?act=confirm", { ID: a }, function(data) { }); 
    $('#'+a).parents(".req") 
     .animate({ backgroundColor: "#fbc7c7" }, "fast") 
     .animate({ opacity: "hide" }, "slow"); 
    }); 
}); 
Questions connexes