我有一个包含4组复选框的表单,用于优化搜索结果。我希望能够为每个复选框组发布一个数组,其中包含当前勾选的复选框的ID。
$.ajax({
url: "/stay_in_belfast/accommodation",
type: "POST",
data: {
subcategory_ids:$(":checkbox[name^='subcategory_ids[']").serialize(),
rating_ids:$(":checkbox[name^='rating_ids[']").serialize(),
location_ids:$(":checkbox[name^='location_ids[']").serialize(),
facility_ids:$(":checkbox[name^='facility_ids[']").serialize()
},
success: function( data ) {
}
});
当我发布这个时虽然我的数组包含了预期的四个变量,但数据看起来像:
subcategory_ids%5B%5D=22&subcategory_ids%5B%5D=23&subcategory_ids%5B%5D=24&subcategory_ids%5B%5D=26&subcategory_ids%5B%5D=27&subcategory_ids%5B%5D=28
如果我使用serializeArray,则四个post变量中的每一个都包含一个带有输入名称和值的名称配对数组。但是输入名称始终是该组输入的组名,因此对我来说没有用处。如果我尝试这样做只是通过
发送一个组$.ajax({
url: "/stay_in_belfast/accommodation",
type: "POST",
data: $(":checkbox[name^='subcategory_ids[']").serialize(),
success: function( data ) {
}
});
它将帖子显示为id的数组。我无法弄清楚为什么它会有所不同,这取决于我是通过单个分组发布还是通过四个分组发布。
基本上我在帖子中想要的是由输入组标识的4个数组,每个数组包含一个id列表。我确定这是可能的,但我只是错过了它。
感谢。
答案 0 :(得分:3)
jQuery.serialize()
函数可用于编码整个表单的内容以进行提交。您可以在AJAX请求中使用编码字符串,如下所示:
$.ajax({
url: "/some-url",
type: "POST",
data: $("#some-form").serialize() // returns name-value pairs, encoded as form data
});
答案 1 :(得分:0)
不知何故,他们在使用时遇到了问题:
url: "/foldername/file.php",
因为我必须始终使用:
url: "foldername/file.php",,