如何将数组元素传递给ajax?

时间:2012-10-04 16:02:49

标签: php jquery

我有问题将元素数组传递给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>

3 个答案:

答案 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
}