我在使用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,
不会发布联系人数组,因为表单会正常提交,但会提交一个联系人。
有什么想法吗?
答案 0 :(得分:2)
ID必须在文档中是唯一的。 $('#contact')
将始终只返回一个元素。
此外,.val()
将始终返回集合中第一个元素的值,即使有更多元素。
考虑使用.serialize
传递数据:
data: $('#some-form').serialize()
...它将以days=X&contact%5B%5D=1&contact%5B%5D=2
答案 1 :(得分:1)
所有复选框都有相同的ID, 使用不同的策略来收集价值
答案 2 :(得分:1)
你需要通过循环获取值。试试这个:
var contact = new Array();
$("input[@name='contact[]']:checked").each(function() {
contact.push($(this).val());
});