使用ajax从服务器获取Json。

问题描述 投票:0回答:2

我是一个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'=>'[email protected]',
                     'Name'=>'Abc Def')
                            );
$this->_helper->json->sendJson($data);


    }
jquery json zend-framework
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_encode 也比使用对象链要短一些。

echo json_encode($data);


0
投票

这只是为了帮助你在Zend中开发,因为你的问题已经得到了回答。

如果你使用的是Zend Framework 1,一个很好的方法是直接通过url访问服务器是否真的用json来响应,当你访问它时,你应该看到以Json格式编码的回复数组。

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

当你访问它时,你应该看到以Json格式编码的回复数组。记住,Zend总是要求在url中出现 "formatjson",以便知道请求是json格式的。我认为你使用 "contextSwithc或Ajaxcontext "来禁用布局和视图渲染。如果是这样,那么你需要在控制器中做的就是这些中的任何一种。

如果你使用ContextSwitch:

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

ContextSwitch _helper会自动将你的数据解析成json。无论你把什么 "变量 "传递给你的视图,它都会被呼应为json数据。和做一样。

echo Zend_Json::encode($data);
© www.soinside.com 2019 - 2024. All rights reserved.