0

我有一个非常复杂的 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。

数据 = JSON.stringify(big_array)

$.ajax({

          type: 'POST',
            dataType: 'json', 
            url: '/project/public/index/send', 
            async: false,
            data: {myJson:  data},
            success: function(response) {
            }
            });

下面是控制器,试图输出一些东西,所以萤火虫可以在 HTML 响应上显示我至少一些东西,但除了 Array 什么都没有

公共函数发送动作(){

  $data = $this->_request->getPost();
    $data_array = json_decode($data['myJson'], true);
    print_r($data_array);
}

有任何想法吗?

4

1 回答 1

0

我认为问题在于您的数据不容易表达为有效的 JSON。我建议将您的数据类型保留为 html 或 text,然后在 php.ini 中将其处理为 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 化数据之前对数组的块进行编码。但是,无论如何您都需要解码服务器上的块。

希望这可以帮助。

PS我很好奇你为什么使用async:false?

于 2012-12-06T18:38:55.313 回答