ajax post multi复选框

时间:2012-03-28 10:53:42

标签: jquery ajax checkbox

我在使用ajax发布此多重复选框数据时遇到问题。

<?php
foreach($_SESSION['contacts'] as $user => $id) {?>
<li class="contactList"><span><input type="checkbox" name="contact[]" id="contact" value="<?php echo $id; ?>" /></span><?php echo $user; ?></li>
<?php } ?>

然后是ajax

        var contact = $("#contact").val()
    var days = $("#days").val()
    $.ajax({
        type: 'post',
        url: 'temp_history.php',
        data: {contact: contact, days: days},
        context: document.body,

不会发布联系人数组,因为表单会正常提交,但会提交一个联系人。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

ID必须在文档中是唯一的。 $('#contact')将始终只返回一个元素。

此外,.val()将始终返回集合中第一个元素的值,即使有更多元素。

考虑使用.serialize传递数据:

data: $('#some-form').serialize()

...它将以days=X&contact%5B%5D=1&contact%5B%5D=2

格式为您提供数据

答案 1 :(得分:1)

所有复选框都有相同的ID, 使用不同的策略来收集价值

序列化表格? http://api.jquery.com/serialize/

答案 2 :(得分:1)

你需要通过循环获取值。试试这个:

var contact = new Array();
$("input[@name='contact[]']:checked").each(function() {
  contact.push($(this).val());
});