2009-10-19 46 views
0

我正在努力获取checked元素的每个值并将它们发布到php。 但它只获得一个检查项目的第一个值。如何获取循环中的checked元素的值

这里是

$("#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"); 
    } 
}); 

和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 } ?> 

我怎样才能检查项目的价值,用于循环?

感谢

回答

1

变化

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

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

这将让你对每个后续项的值。

并使用Firebug! :)

+0

thx,那就是我一直在寻找的! – 2009-10-19 16:27:24

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

你应该遍历所有选中的元素,你可以使用$.each,然后将结果添加到对象和职位,反对服务器:

$("#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) { }); 
}); 

数据对象将由包含检查元素的ID /值的键/值对形成。

+0

应该使用'name'属性而不是ID。除此之外,很好的答案。 – 2009-10-19 16:11:40

+0

@Josh,是的同意,我用id属性,因为它似乎是OP分配一个他愿意使用的不同的值。 'id =“<?php echo $ info ['ID'];?>”' – CMS 2009-10-19 16:14:05

+0

它不工作,我不明白,我改为“名字”attr,因为你写道,但没有运气 – 2009-10-19 16:22:11

0

更妙的是,让jQuery的工作的魔力为你:

$("#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"); 
    }); 
});