我有一个用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"
我需要的最佳结果是:
array
category => array
type => my_type
或类似我可以使用的任何东西。
有什么想法吗?
提前感谢您的帮助
答案 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'});
注意:如果您将serializeArray
直接放入ajax数据。它会正常工作。
这可能有助于某人。