由Ajax发送并使用PHP处理的HTML表单

时间:2016-06-07 02:52:10

标签: javascript php jquery html ajax

我有一个用PHP生成的表单输入,如下所示:

<input type="text" name="category[type]">
<input type="text" name="category[name]">

在PHP中,没关系。但我需要通过Ajax发送javascript。我使用jQuery并在数据中尝试使用函数$.serializeArray()

'form': $(this).closest('form').serializeArray(),

但我得到的结果是:

array (7)
  0 => array (2)
    name => "category[type]" (11)
    value => "my_type"

JSFIDDLE

我需要的最佳结果是:

array
  category => array
    type => my_type

或类似我可以使用的任何东西。

有什么想法吗?

提前感谢您的帮助

2 个答案:

答案 0 :(得分:2)

使用.on方法将submit事件处理程序附加到表单。当您单击表单中的提交按钮时,将触发此操作。

您希望将$(this).serializeArray()直接传递到data设置。

$('form').on('submit', function (e) {
    e.preventDefault();
    $.ajax({
        type: 'POST',
        url: 'script.php'
        data: $(this).serializeArray(), 
        success: function (res) {
            // handle the response you get back from the PHP
        }
    })
});

答案 1 :(得分:0)

似乎更好的方法是使用serializeArray获取数据并在发送之前修改它们。

  

自定义数据必须表示与表单对象相同的对象   返回serializeArray。

var formData = $(this).closest('form').serializeArray();
    formData.push({ name: 'customParam', value: 'my_val'});

JSFIDDLE

注意:如果您将serializeArray直接放入ajax数据。它会正常工作。

这可能有助于某人。