从 ajax 响应访问返回数组的键值

Mat*_*eau 5 javascript php ajax json

这是我从我的 Ajax 方法返回的 json:

{"id_ac":"32","mail_uniq_ac":"mail@gmail.com","id_civ":"2"}

我想访问id_ac我的 javascript 中的键值,但实际上,我不能。

这是我的 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()));
    }
Run Code Online (Sandbox Code Playgroud)

这是我需要获取键值的 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'])
        });
}
Run Code Online (Sandbox Code Playgroud)

这 :

console.log(data); 
Run Code Online (Sandbox Code Playgroud)

输出我:

{"id_ac":"32","mail_uniq_ac":"mail@gmail.com","id_civ":"2"}
Run Code Online (Sandbox Code Playgroud)

但是 console.log(data['id_ac']); 返回未定义

Zak*_*rki 5

You're encoding the data to JSON in the server side using json_encode(), you need to decode it in the client side using JSON.parse() so you will be able to get the information from it like :

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'])
    });
}
Run Code Online (Sandbox Code Playgroud)

Working sample

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'])
    });
}
Run Code Online (Sandbox Code Playgroud)