这是我从Ajax方法返回的json:
{“ id_ac”:“ 32”,“ mail_uniq_ac”:“ mail@gmail.com”,“ id_civ”:“ 2”}
我想在我的JavaScript中访问id_ac
键值,但实际上不能。
这是我的ajax控制器:
public function executeAjaxGetActeur(sfWebRequest $request){
$id_ac = $request->getParameter('id_ac');
$acteur = Doctrine_Core::getTable('Acteur')->findOneByIdAc($id_ac);
return $this->renderText(json_encode($acteur->toArray()));
}
这是我需要获取键值的Javascript
function showModalTempsPartenaire($id_ac){
var $id_ac = $id_ac;
$.post($url + "/ajax/get_acteur", {
id_ac: $id_ac
}, function (data) {
if (data && trim(data) != '')
console.log(data);
console.log(data['id_ac'])
});
}
The:
console.log(data);
输出我:
{"id_ac":"32","mail_uniq_ac":"mail@gmail.com","id_civ":"2"}
但是console.log(data ['id_ac']);返回未定义
答案 0 :(得分:4)
您正在使用json_encode()
在服务器端将数据编码为JSON,需要在客户端使用JSON.parse()
对其进行解码,以便能够从中获取信息,例如:
function showModalTempsPartenaire($id_ac){
var $id_ac = $id_ac;
$.post($url + "/ajax/get_acteur", {
id_ac: $id_ac
}, function (data) {
if (data && trim(data) != '')
data = JSON.parse(data);
console.log(data['id_ac'])
});
}
工作样本
var data = '{"id_ac":"32","mail_uniq_ac":"mail@gmail.com","id_civ":"2"}';
var obj = JSON.parse(data);
console.log(obj['id_ac']);