通过ajax提交多个表单

submit multiple forms by ajax

本文关键字:表单 提交 ajax 通过      更新时间:2023-10-22

我试图通过ajax post提交多个表单,但问题是服务器在post中返回了一个空数组。

以下是我的JS中的代码:

$('#check_test').click(function(e){
    e.preventDefault();
    e.stopPropagation();
    var results = [];
    $('form').each(function(){
        results.push($(this).serialize());
    });
    $.ajax({
        'url': 'handler/test_handler.php',
        'method': 'POST',
        'data': JSON.stringify(results),
        'dataType': 'html',
        'success': function (data) {
            console.log(data);
        }
    });
});

在服务器端:

var_dump(json_decode($_POST)); // null
var_dump($_POST); // empty array

我做错了什么?谢谢

否,没有method属性,其type:

$.ajax({
    'url': 'handler/test_handler.php',
    'type': 'POST', // type not method
    'data': {data: JSON.stringify(results)},
    'dataType': 'html',
    'success': function (data) {
        console.log(data);
    }
});

method<form>标记中使用的属性。

样本输出

旁注:我认为serializeArray()更合适:

results.push($(this).serializeArray());

另一个例子