Ajax请求只将部分数据发送到PHP服务器

时间:2014-10-10 12:24:40

标签: php jquery ajax post

我正在尝试将一组对象(我从Handsontable中成功提取)发送到我的PHP服务器中的脚本。

function saveMaterials(showAlert){
    var tableData = handsontable.getData();
    $.ajax({
        url: "../phprequests/saveMaterials.php",
        data: { "data": tableData,
                "endUserId": <?php echo $endUserId ?>},
        dataType: 'json',
        type: 'POST',
        success: function (res) {
            if (res.result === 'ok') {
                if(showAlert) alert('Saved data.');
            }
            else {
                if(showAlert) alert(res.errorMessage);
            }
        },
        error: function(xhr, status, error) {
            if(showAlert) alert(error);
        }
    });
}

在我的PHP服务器中,我只会收到数据,然后保存在我的数据库中:

<?php
    $materialsData = $_POST['data'];
    $endUserId = $_POST['endUserId'];
    //deal with materialsData
?>

materialsData是一个对象数组(Handsontable的行),每个对象有15个字段(每列一个)。

当我有少量行时,一切都按预期工作。但是,在一次发送超过80行之后,我注意到我的PHP只接收了72项materialData数组,并且没有收到数据的“endUserId”部分。 看起来,由于某种原因,只有部分数据被发送到服务器或由它接收。

我可以在此帖子请求中发送的数据长度是否有限制? 我检查了服务器中的max_post_size,它设置为256MB。

1 个答案:

答案 0 :(得分:2)

通过在我的服务器的php.ini文件中增加max_input_vars 来解决问题

由于数组中有超过1000个变量,服务器只接收了部分变量!

希望这有助于某人!