当我.post()大型数组时,很多信息都会被删除。在下面的代码片段中,第一个.html()显示了所有数组数据,而PHP的返回结果只显示了一部分数据。
JavaScript的:
$('.inner').html(JSON.stringify(dbData));
$.post( "test.php", {'filename' : filename, 'dbData' : dbData}, function(result) {
$('.inner').html(result);
});
PHP:
ini_set('display_errors', 'On');
$filename = $_POST['filename'];
$dbData = $_POST['dbData'];
$file = $myfile = fopen($filename, 'w');
echo json_encode($dbData);
php.ini有post_max_size = 8M,我发送的数据远不到8M。
编辑:数组中的数据似乎在某一点后被切断。没有错误。
答案 0 :(得分:2)
尝试增加max_input_vars
的值。我相信默认值是1000。
我曾经多次遇到过这个问题,其中一个表单是为数据库表中的每一行生成一个或多个字段的,当它增长到几百行时,后面的表单字段会被删除。
虽然您似乎只使用了一个POST var $_POST['dbData']
,但如果AJAX请求将每个dbData元素作为单独的&dbData[]=...
参数发送,那么它将被计数多次