Zend Jquery Ajax将对象文字发布到PHP并解析它们

时间:2012-12-06 17:26:42

标签: jquery ajax arrays zend-framework

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

有什么想法吗?

1 个答案:

答案 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?