Javascript 将表单数组值发送到ajax

Javascript 将表单数组值发送到ajax,javascript,jquery,ajax,Javascript,Jquery,Ajax,因此,我的php需要2个值,operation=>string和data=>array。以下是表格(动态生成的输入): 标题: . . . 说明: 编辑媒体 现在我必须从表单中的所有数据[xyz]创建一个数组,但我很难找到这样做的方法。我最接近的是这样做: 我必须将数组存储为键/值,没有其他方法,因此我可以ajax\u请求={operation:operation\u input,data:input\u array\u data} 哦,在提交“正常”trought POST时,表单也能按预

因此,我的php需要2个值,
operation=>string
data=>array
。以下是表格(动态生成的输入):


标题:
.
.
.
说明:
编辑媒体
现在我必须从表单中的所有
数据[xyz]
创建一个数组,但我很难找到这样做的方法。我最接近的是这样做:

我必须将数组存储为键/值,没有其他方法,因此我可以
ajax\u请求={operation:operation\u input,data:input\u array\u data}


哦,在提交“正常”trought POST时,表单也能按预期工作。

我使用了对象而不是数组。在PHP中进行json_解码时,将“true”作为第二个参数传递,数据将以数组形式输出。我想这就是你想要的。请评论,如果你正在寻找不同的东西

$(".janitor_edit").click(function () {
  var data = {};
  data.operation = $("input[name='operation']").val();
  data.data.id = $("input[name='data\\[id\\]']").val();
  data.data.title = $("input[name='data\\[title\\]']").val();
  data.data.description = $("input[name='data\\[description\\]']").val();
});

我使用了对象而不是数组。在PHP中进行json_解码时,将“true”作为第二个参数传递,数据将以数组形式输出。我想这就是你想要的。请评论,如果你正在寻找不同的东西

$(".janitor_edit").click(function () {
  var data = {};
  data.operation = $("input[name='operation']").val();
  data.data.id = $("input[name='data\\[id\\]']").val();
  data.data.title = $("input[name='data\\[title\\]']").val();
  data.data.description = $("input[name='data\\[description\\]']").val();
});

如果表单本身可以工作,那么让jQuery为您处理它


如果表单本身可以工作,那么让jQuery为您处理它


我忘了提到表单有动态生成的输入,所以不知道每个输入的名称是什么。这是一个很好的答案,但是命名键数组,如array['key']在JSdunno中工作得很好,如果可能有帮助的话,但是我做了这个jQuery插件来处理动态生成的表单,认为应该使用正确的方法。序列化,这可能会有帮助。因此,您可以执行命名键。很长一段时间以来,我一直认为它会自动转换为object,因为这不起作用:var my_array=[“key”:“value”]我已经调整了我的答案。这些链接表明你是对的。。。可以使用var my_数组;我的数组['key']='value'。但这是一种“将数组转化为对象”的方法,因为对象['attribute']='value'赋值是一种对象特征。我忘了提到表单有动态生成的输入,所以不知道每个输入的名称是什么。这是一个很好的答案,但是命名键数组,如array['key']在JSdunno中工作得很好,如果可能有帮助的话,但是我做了这个jQuery插件来处理动态生成的表单,认为应该使用正确的方法。序列化,这可能会有帮助。因此,您可以执行命名键。很长一段时间以来,我一直认为它会自动转换为object,因为这不起作用:var my_array=[“key”:“value”]我已经调整了我的答案。这些链接表明你是对的。。。可以使用var my_数组;我的数组['key']='value'。但这是一种“将数组转化为对象”的方法,因为对象['attribute']='value'赋值是一种对象特征。如果我发布这个字符串,我如何将它转换回PHP端的数组/对象?我必须手动解析它吗?@Juventus18-你可以查看
$\u POST
,就像你正常提交表单一样。序列化的要点是它使用标准格式,所以您不需要使用自定义解析器。愚蠢的我,即使我“测试”了这个,我也不知道为什么我认为它不会工作……如果我发布这个字符串,我如何将它转换回PHP端的数组/对象?我必须手动解析它吗?@Juventus18-你可以查看
$\u POST
,就像你正常提交表单一样。序列化的要点是它使用标准格式,所以您不需要使用自定义解析器。愚蠢的我,即使我“测试”了这个,我也不知道为什么我认为它不起作用。。。
data: $('#your_form').serialize();