我有问题将元素数组传递给Ajax请求。应该如何做?
var category = $('select[name="category[]"]').serialize();
$.post(host + '/form/ajax.php', {
category:category
},
function(data) {
console.log(data);
});
在PHP中,我需要知道有多少个category元素,例如:
<?php echo count($_POST['category']) ?>
// should return 3
HTML
<select name="category[]">
<option value="1">CPU</option>
<option selected value="2">Hard Drive</option>
</select>
<select name="category[]">
<option value="1">CPU</option>
<option selected value="2">Hard Drive</option>
</select>
<select name="category[]">
<option selected value="1">CPU</option>
<option value="2">Hard Drive</option>
</select>
答案 0 :(得分:3)
改为使用serializeArray。
var category = $('select[name="category[]"]').serializeArray();
答案 1 :(得分:1)
在第一次序列化()数据时,您正在进行双重序列化,然后通过执行{category:category}将序列化数据分配给POST参数。相反,你应该只发送“类别”。
var category = $('select[name="category[]"]').serialize();
$.post(host + '/form/ajax.php',
category,
function(data) {
console.log(data);
});
答案 2 :(得分:0)
试试这个
$.post(host + '/form/ajax.php', {
'category[]':category
}