我有一个问题,我不确定如何处理:
我从API中恢复了一个大JSON,我需要在我的网站上显示其内容(一切都好),但我需要返回网站上显示的当前数据(它可以在通过我的AJAX调用发回之前被删除,编辑和修改),以便我可以通过API将该数据添加到另一个网站。
我可以在没有问题的情况下恢复和添加我当前的逻辑,当我从我的AJAX调用中获得一个大的JSON时会出现问题:
$.post('ajax/send_data.php?command=create&id=' + id, {data: superArray}, function(response){
$('#data_table').html(response);
});
即使我发送这样的数据,最大值超出容量,导致创建大约30行数据。更改php.ini中的 max_input_vars 不是一个选项,我不能自己更改,加上它应该设置为一个非常大的数字,或者没有限制...
我想到的唯一解决方案(在其他几个不适用于我的情况之后)是遍历“数组”,以多个$ .post调用的方式发送数据...
问题是我的“数组”不是一个数组,因为php发回一个对象,原来它是一个关联数组。
问题是......如何循环我的对象,分成块,然后通过AJAX将这些块发送回PHP?
以下是我的尝试,使用参考Convert and Loop through JSON with PHP and JavaScript Arrays/Objects
for (var key in superArray) {
str += JSON.stringify(superArray[key]);
cnt++;
if(cnt % 25 == 0){
console.log(str);
temparray = JSON.parse(str); // here gives an error
$.post('ajax/send_data.php?command=create&id=' + id, {data: temparray}, function(response){
str = "";
});
}
}
我无法将我的字符串块转回到一个对象中,因为该键在该过程中丢失(每个数据都创建如下:
未定义{ “ID”: “1338”, “名称”:“24HRS”, “description”:“......”})
我在这里做错了什么?对我的问题可能有更好的方法,我可能不知道吗?
修改
这就是我从Ajax电话发回的内容:
echo json_encode($html);