Ajax请求仅向PHP服务器发送部分数据

Ajax请求仅向PHP服务器发送部分数据,php,jquery,ajax,post,Php,Jquery,Ajax,Post,我正在尝试将一组对象(我成功地从一个手持设备中提取)发送到PHP服务器中的脚本 function saveMaterials(showAlert){ var tableData = handsontable.getData(); $.ajax({ url: "../phprequests/saveMaterials.php", data: { "data": tableData, "endUserId": <?

我正在尝试将一组对象(我成功地从一个手持设备中提取)发送到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);
        }
    });
}
功能保存材料(showAlert){
var tableData=handsontable.getData();
$.ajax({
url:“../phprequests/saveMaterials.php”,
数据:{“数据”:tableData,
“endUserId”:},
数据类型:“json”,
键入:“POST”,
成功:功能(res){
如果(res.result=='ok'){
if(显示警报)警报(“保存的数据”);
}
否则{
if(显示警报)警报(res.errorMessage);
}
},
错误:函数(xhr、状态、错误){
如果(显示警报)警报(错误);
}
});
}
在我的PHP服务器中,我将只接收数据,并保存在我的数据库中:

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

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

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

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

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

因为我在数组中有1000多个变量,所以服务器只收到了其中的一部分


希望这对别人有帮助

JSON.stringify()
JSON\u decode
可能会让您的生活更轻松。通过在我的php.ini文件中增加max\u input\u vars解决了这个问题。@JaredSmith,我也考虑过,但后来注意到即使数据类型是JSON,数据是对象数组,服务器完美地接收到对象数组。
dataType
指的是您期望从服务器返回的数据类型,而不是发送到服务器的类型。我的建议是正确的。是的,我意识到我的引用do数据类型作为JSON现在是不相关的。但是,如果数组是以两种方式接收的,为什么我还要在发送数据之前使用JSON.stringify(),然后在服务器中进行JSON_解码呢?发送JSON是否更轻/更快?谢谢