我有一个非常复杂的Jquery对象,类似于多维数组。这是使用console.log
的样子[
[] id [ “91900” ] 地点 [ “F43” , “F44” ] prev_location [ “F41” ] ,
[] ID [ “92305” ] 地点 [ “F38” , “F39” ] prev_location [ “F39” ] ,
[] ID [ “155972” ] 地点 [ “F35” ] prev_location [ “F45” ]
尝试使用JQUERY / AJAX将其发送到Zend控制器,我尝试对其进行字符串化,但是当我将它发布到控制器上时它就像Array一样。
data = JSON.stringify(big_array)
$。AJAX({
type: 'POST', dataType: 'json', url: '/project/public/index/send', async: false, data: {myJson: data}, success: function(response) { } });
下面是控制器,尝试输出一些内容,以便firebug可以向我显示HTML响应,至少有一些东西,但只有Array出现
public function sendAction(){
$data = $this->_request->getPost(); $data_array = json_decode($data['myJson'], true); print_r($data_array); }
有什么想法吗?
答案 0 :(得分:0)
我认为问题在于您的数据不易表达为有效的JSON。我建议将您的数据类型保存为html或文本,然后在php中将其处理为JSON(或您需要的任何格式)。
data = big_array;
$.ajax({
type: 'POST',
dataType: 'text',
url: '/project/public/index/send',
async: false,
data: data,
success: function(response) {
}
});
或者,您可以使用类似这样的内容:http://phpjs.org/functions/base64_encode/在JSON-ify数据之前编码数组的块。但是,无论如何你都需要解码服务器上的块。
希望这有帮助。
P.S。我很好奇为什么你使用async:false?