如何通过$.post将javascript对象数组发送到php脚本?

如何通过$.post将javascript对象数组发送到php脚本?,php,jquery,json,object,.post,Php,Jquery,Json,Object,.post,我的页面上有一个数据表。这些列是“开始”、“结束”、“注释”和“选项”。在“选项”列中,有一个按钮用于删除行,还有一个按钮用于使表中的行可编辑。这允许更改“开始”、“结束”和“注释”的值。再次单击它将完成编辑过程。最后,还有一种向表中添加另一行的方法。所有这些都如预期的那样起作用 我想在底部添加一个按钮,用表中的数据创建一个数组,如下所示(表示为JSON纯粹是为了便于向SO显示:不需要): 构建数组应该不会有太多问题,但是一旦构建了数组,我如何将其发布到后端php脚本(然后使用put\u csv

我的页面上有一个数据表。这些列是“开始”、“结束”、“注释”和“选项”。在“选项”列中,有一个按钮用于删除行,还有一个按钮用于使表中的行可编辑。这允许更改“开始”、“结束”和“注释”的值。再次单击它将完成编辑过程。最后,还有一种向表中添加另一行的方法。所有这些都如预期的那样起作用

我想在底部添加一个按钮,用表中的数据创建一个数组,如下所示(表示为JSON纯粹是为了便于向SO显示:不需要):

构建数组应该不会有太多问题,但是一旦构建了数组,我如何将其发布到后端php脚本(然后使用
put\u csv()
将数据写入文件)?理想情况下,它将以数组格式在服务器端可用,以允许验证


如果需要,我很乐意使用jquery。

我肯定会使用jquery。下面是$.post()函数的页面

需要注意的一点是,$.post()是$.ajax()函数的包装器,它被简化了,并且消除了为成功的post之外的任何内容设置回调的能力。对于通过AJAX进行的重要事务,我将使用以下方法:

例如:

$.ajax({
      url: "script.php",
      global: false,
      type: "POST",
      data: ({id : this.getAttribute('id')}),
      dataType: "html",
      success: function(msg){
         alert(msg);
      }
   });

如何将其结束到服务器取决于要归档的内容。如果要加载一个处理数据的新页面,可以使用带有隐藏输入的常用表单。或者,如果您希望通过AJAX在后台处理,请使用CRasco所说的
jQuery.AJAX
。无论使用哪种方法,都需要将结构化数组转换为简单的键/值列表

一种选择是生成一个JSON文档(我认为jQuery并没有为此提供函数,但您可以很容易地找到一些东西),并在序列化文档中使用单个字段。然后在服务器端使用
json\u decode
获取数组。如果您使用的是AJAX方法,
jQuery.AJAX
调用中的数据选项将包含:

{
    'data': '[{"start":"2009/08/01","end":"2009/08/08","comment":"an example date."},...'
}
更好的方法是以PHP本机可以理解的格式将其序列化为字段列表。这意味着您不需要做任何特殊的操作,
$\u POST['data']
将包含该数组。例如:

{
    'data[0][start]': '2009/08/01',
    'data[0][end]': '2009/08/08',
    'data[0][comment]': 'an example date.',
    'data[1][start]': '2009/07/01',
    'data[1][end]': '2009/07/08',
    'data[1][comment]': 'another example date, a month earlier.',
    ... 
}
如果使用form方法,则需要生成如下输入字段:

<input type="hidden" name="data[0][start]" value="2009/08/01" />

我不知道php可以传递关联(或多维)数组。我怎样才能用javascript构建上述数组?
<input type="hidden" name="data[0][start]" value="2009/08/01" />