1

我在将元素数组传递给 Ajax 请求时遇到问题。应该怎么做?

var category = $('select[name="category[]"]').serialize();
$.post(host + '/form/ajax.php', {
    category:category
},
function(data) {
    console.log(data);
});

在 PHP 中,我需要知道有多少类别元素,例如:

 <?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>
4

3 回答 3

3

请改用serializeArray

var category = $('select[name="category[]"]').serializeArray();
于 2012-10-04T16:05:03.130 回答
1

您在第一次 serialize() 数据时进行双重序列化,然后通过执行 {category: category} 将序列化数据分配给 POST 参数。相反,您应该只发送“类别”。

var category = $('select[name="category[]"]').serialize();
$.post(host + '/form/ajax.php',
    category,
    function(data) {
        console.log(data);
});
于 2012-10-04T17:58:00.297 回答
0

尝试这个

$.post(host + '/form/ajax.php', {
    'category[]':category
}
于 2012-10-04T16:04:02.693 回答