我在这个案例中遇到两个问题:
我想传递一个我在Zend Controller中创建的JSON对象
public function exampleAction() {
$answers = array();
for($i = 0 ; $i < 3 ; $i++)
{
$answer = new Answer();
$answer->answer_id = 5 ; // for example
$answer->thanked = 'true';// for example
$answers[] = $answer;
}
echo Zend_Json_Encoder::encode($answers);
}
Jquery Post功能是:
$.post(
"/memberactions/getthanks/",
{values:values},
function(res){
alert(123);
}
, 'json')
第一个问题:
为什么返回响应是HTML?响应必须是JSON?
第二个问题
HTML响应就像这样
[{"__className":"Answer","thanked":"true","answer_id":"5"}]
如何做出这样的回复:
- answer
thanked : true
answer_id : 5
作为 JSON对象,没有 __ className:“回答”(在响应中有类名是否有害?)
答案 0 :(得分:1)
您是否已禁用布局,viewRenderer等?此外,您应该发送适当的标头。您可以使用JSON操作助手一次完成所有这些操作:
$this->_helper->json($answers);
您可以在toArray()
中提供Answer
方法,该方法会返回一系列相关属性,然后在您的操作中使用它:
$answers[] = $answer->toArray();