[英]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.