[英]pass two dimensional array from javascript to php but the size were reduced
我想将一个2D数组从javascript传递给PHP。 但结果我得到的只是阵列的一部分。
我使用arr.length
检查大小是75.我使用firefox开发工具检查发布的数据是否正常。 但我在PHP中使用sizeof($arr)
来检查43的大小。
我使用apache作为服务器。 数组的内容是字符串但不超过10个字符。
以下是我使用的代码。
JavaScript的:
myCol= 0 + $('#tabResult th').length; //75
myRow= 0 + $('#tabResult tr').length; //62
var data = new Array(myRow);
for(i = 0; i < myRow; i++){
data[i] = new Array(75);
}
$.post('getReport1/getReport1ExportXls',{
table: $('#getReport1List').html(),
data: data,
myCol: myCol,
myRow: myRow
},function(o){
openXls();
});
`
PHP:
$data=$_POST['data'];
更新1:事实上,最终的数组大小(行x列)接近1000.我已经尝试更改php.ini max_input_vars = 30000
并运行httpd -k restart
但没有效果。
data
变量是myRow
项的数组:
var data = new Array(myRow);
每个项目都包含75个元素:
data[i] = new Array(75);
所以你要生成一个大小为myRow x 75
的数组:
data = [
item_1: [ ... 75 items ... ]
...
item_myRow: [ ... 75 items ... ]
]
在PHP中你应该得到相同的:
count($_POST['data']); // "myRow"
count($_POST['data'][0]); // 75
根据你的问题, myRow
等于43。
更新
我建议用JSON打包数组:
data: JSON.stringify(data)
然后在PHP中解码它:
$data = json_decode($_POST['data'], true);
那么你当然只限于post_max_size
和memory_limit
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.