2012-03-28 14 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 } ?> 

その後、アヤックス

 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

ニース、歓声 –

+2

ご希望の場合、これはmap' 'でワンライナーに減らすことができます:'接触= $( '入力[名前= 『連絡先[]を』 ]:チェックされた ')。toArray(); ' –

1

すべてのチェックボックスが同じIDを持っている、 は値

フォームをシリアライズ収集するために異なる戦略を使うのか? http://api.jquery.com/serialize/

2

IDは、ドキュメント内で一意である必要があります。 $('#contact')は常に1つの要素だけを返します。

さらに、.val()は、さらに多くの場合でも、セットの最初の要素の値を常に返します。

は、データを渡すために.serializeを使用することを検討してください:

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

...あなたがループして値を取得する必要があるあなたにdays=X&contact%5B%5D=1&contact%5B%5D=2