我有以下问题。我有一个多选框。我想从多选中读取所有选定的变量,并通过HTTP Get传递它们。
ajax: {
url: wwwFullDir + 'api/statistics/',
data: function (d) {
var data = $('#form-filter').serializeArray(), filter = {};
{
d[data[i].name] = data[i].value;
console.log(data[i].name + "=" + data[i].value);
}
}
}
这是我得到的输出
filter[company] = 1
filter[company] = 2
filter[company] = 3
到目前为止一切都很好,但问题是jquery只将公司ID中的一个传递给get查询,因为变量名是相同的:
/api/statistics/?filter[company]=3
应该是:
/api/statistics/?filter[company]=1&filter[company]=2&filter[company]=3
任何想法我做错了什么?谢谢!
答案 0 :(得分:1)
最好的办法是将其设为以逗号分隔的列表:
filter[company]=1,2,3
在捕获脚本中,将其更改为数组。如果你正在使用PHP,你可以这样做:
$filter = $_GET["filter[company]"];
$companies = explode(",", $filter);
// returns array(1, 2, 3)
但是:我做了一些研究,结果证明你可以通过将traditional
的{{1}}选项设置为$.ajax()
来实现这一目标:
true
jQuery here中的传统序列化还有更多。