通过ajax发送表单数组值

时间:2012-07-16 18:58:20

标签: javascript jquery ajax

所以我的php需要2个值,operation => stringdata => array。以下是表单(动态生成的输入):

<form method="post" action="/operations.php">
        Title: <input type="text" value="valuehere" name="data[title]">
                    .
                    .
                    .
        Description: <textarea name="data[description]"></textarea><br>

        <button class="btn janitor_edit" type="submit">Edit Media</button>

                    <input type="hidden" value="operateMePls" name="operation"> 
        <input type="hidden" value="254" name="data[id]">
</form>

现在我必须从表单中的所有data[xyz]创建一个数组,但是我找不到这样做的方法。我最接近的是这样做:link

我必须将数组存储为键/值,而不是其他方式,所以我可以ajax_request = { operation: operation_input, data : input_array_data };

哦,当提交“正常”提交POST时,表单按预期工作。

2 个答案:

答案 0 :(得分:3)

如果表单单独工作,那么让jQuery为你处理converting the data into a form suitable for XHR

data: $('#your_form').serialize();

答案 1 :(得分:1)

我使用了一个对象而不是一个数组。当您在PHP中使用json_decode时,将“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();
});