gpt4 book ai didi

javascript - 将二维数组从 javascript 传递到 php 但大小减小

转载 作者:行者123 更新时间:2023-11-28 06:03:49 25 4
gpt4 key购买 nike

我想将 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 ,当然。

关于javascript - 将二维数组从 javascript 传递到 php 但大小减小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com