我是一个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);
}
将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);
这只是为了帮助你在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);