我有很多input
个name
属性。我知道如何将它们全部作为jQuery对象!
console.log()
打印出类似这样的内容:
[
<input type="checkbox" name="people" value="33" checked="checked">
,
<input type="checkbox" name="people" value="1" checked="checked">
]
之后,我需要向服务器发送一个包含所有人ID(value
属性)的AJAX请求。
显然,我可以将serialize()
链接到该jQuery对象,结果如下:
people=33&people=1
......但我正在寻找'更友好'的方式。对PHP更“友好”,所以我可以这样做:
foreach ($_POST['people'] as $people) {
echo $people;
}
答案 0 :(得分:5)
PHP需要多个同名的复选框才能使用括号表示法。使用以下命名约定应该允许您执行所需的操作。
<input type="checkbox" name="people[]" value="1" checked="checked">
答案 1 :(得分:3)
只需将[]
添加到您的姓名中即可获得复选框名称...
<input type="checkbox" name="people[]" value="33" checked="checked">
<input type="checkbox" name="people[]" value="1" checked="checked">
然后$_POST['people']
将是输入值的数组......
答案 2 :(得分:2)
.serializeArray()可能会做到这一点:http://api.jquery.com/serializeArray/
答案 3 :(得分:0)
好的,我会回答我的问题。 :)
循环遍历jQuery对象(其中<input>
是)并将元素的value
添加到数组中。
var data = [];
$(this).parents('form').find('input[name="people"]').each(function() {
data.push($(this).val());
});
console.log(data);
$.post('over/the/rainbow', {'people' : data});
修改强>
在我看来,@ bstakes方式更清晰。