小编典典

通过ajax提交多种表格

ajax

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

这是我的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

我究竟做错了什么?谢谢!


阅读 213

收藏
2020-07-26

共1个答案

小编典典

不,没有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());

另一个例子

2020-07-26