看来当我.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。

编辑:数组中的数据似乎在某一点后被切断。没有错误。

最佳答案

尝试增加max_input_vars的值。我相信默认值为1000。

我已经遇到过几次这个问题,在这种情况下,数据库表中的每一行都会生成一个带有一个或多个字段的表单,当表单增长到几百行时,后面的表单字段就会被砍掉。

尽管您似乎只为此使用了一个POST变量$_POST['dbData'],但是如果AJAX请求将dbData的每个元素作为单独的&dbData[]=...参数发送,则将被计算多次。

关于javascript - POST数据被缩短,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30579145/

10-09 17:19