Javascript ajax发布多个输入组

Javascript ajax发布多个输入组,javascript,jquery,ajax,forms,post,Javascript,Jquery,Ajax,Forms,Post,我有一个带有4组复选框的表单,用于优化搜索结果。我希望能够为每个复选框组发布一个数组,其中包含当前选中复选框的id $.ajax({ url: "/stay_in_belfast/accommodation", type: "POST", data: { subcategory_ids:$(":checkbox[name^='subcategory_ids[']").serialize(),

我有一个带有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列表。我相信这是可能的,但我只是错过了它

谢谢。

函数可用于对整个表单的内容进行编码以供提交。您可以在AJAX请求中使用编码字符串,如下所示:

$.ajax({
    url: "/some-url",
    type: "POST",
    data: $("#some-form").serialize() // returns name-value pairs, encoded as form data
});
函数可用于对整个表单的内容进行编码以供提交。您可以在AJAX请求中使用编码字符串,如下所示:

$.ajax({
    url: "/some-url",
    type: "POST",
    data: $("#some-form").serialize() // returns name-value pairs, encoded as form data
});

不知何故,他们在使用时遇到了问题:

url: "/foldername/file.php",
我必须始终使用:

url: "foldername/file.php",,

不知何故,他们在使用时遇到了问题:

url: "/foldername/file.php",
我必须始终使用:

url: "foldername/file.php",,

我不知道是什么导致了你的问题,但我可以想出一些办法来尝试:1。在调用外部单独创建数据对象,并将其传入。2.序列化整个结构,而不是单个属性。您是否尝试过
$(“form#some _form _id”)。Serialize()
?Cheers@SalmanA。对整个表单进行序列化非常有效。谢谢。您现在展示的是标准的urlencoded表单数组格式,您需要json数组还是???需要更多的细节我不知道是什么导致了你的问题,但我可以想出一些办法来尝试:1。在调用外部单独创建数据对象,并将其传入。2.序列化整个结构,而不是单个属性。您是否尝试过
$(“form#some _form _id”)。Serialize()
?Cheers@SalmanA。对整个表单进行序列化非常有效。谢谢。您现在展示的是标准的urlencoded表单数组格式,您需要json数组还是???需要更多的细节