2012-03-28 57 views
0

我有問題發佈這個多複選框數據與Ajax。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, 

它不是發佈觸頭陣列作爲表單通常會提交但提交一個一次性接觸。

任何想法?

回答

1

你需要你值隨循環中的數據。試試這個:

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

尼斯,即工作一種享受,歡呼聲 – 2012-03-28 11:05:15

+2

這可以減少到一個班輪用'map'如果你想:'觸點= $(「輸入[名稱=‘接觸[]’ ]:checked')。map(function(){return $(this).val();})。toArray();' – 2012-03-28 11:08:23

2

ID在文檔中必須是唯一的。 $('#contact')將始終只返回一個元素。

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

考慮使用.serialize來傳遞數據:

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

...這將給你的格式days=X&contact%5B%5D=1&contact%5B%5D=2