0

我是 jQuery 的大初学者。我正在尝试从服务器获取一些 Json:有我的代码:

$.ajax({
        url: "/addemail",
        type:'POST',
        data: $("form#form12").serialize(),  
        success: function(my_json) { 
                 // I suppose that Json returned by the addmail() is in the var: my_json ?
                //inject my_json inside some <td >      

               } 
        });

我的 php 函数(我正在使用 Zend):

 public function addemailAction(){
$data=array(array('Email'=>'abc@gmail.com',
                     'Name'=>'Abc Def')
                            );
$this->_helper->json->sendJson($data);


    }
4

2 回答 2

2

将 dataType 添加到 ajax 调用

dataType:'json'

在您的success函数中,您通过引用my_json对象中的数组名称来获取数据

function(my_json) { 
     alert(my_json.Email);
     alert(my_json.Name);
} 

不知道什么

$this->_helper->json->sendJson($data);

确实,我确定它只是输出了 json 代码,但是你可以输出 json 并且json_encode比使用对象链更短。

echo json_encode($data);

于 2013-05-31T18:42:57.763 回答
0

这只是为了帮助您在 Zend 中进行开发而添加的,因为您已经回答了您的问题。

如果您使用 Zend Framework 1,那么查看您的服务器是否实际响应 json 的好方法是通过 url 直接访问它:

http://site/applicationName/public/controllerName/ActionNameThatReturnsJsonData/format/json

当您访问它时,您应该会看到以 Json 格式编码的回复数组。请记住,Zend 总是要求在 url 中出现“/format/json”,以便知道请求是 json。我认为您正在使用“contextSwithc 或 Ajaxcontext”来禁用布局和视图呈现。如果是这样,那么您在控制器中需要做的就是以下任何一项:

如果您使用 ContextSwitch:

$this->view->whateeverVariableNameYouwant = $data;

ContextSwitch _helper 会自动将您的数据解析为 json。无论您传递给视图的“变量”是什么,它都会以 json 数据的形式回显。与这样做相同:

echo Zend_Json::encode($data);
于 2013-06-03T17:38:34.690 回答