#javascript #php #json #ajax
#javascript #php #json #ajax
Вопрос:
Здесь я возвращаю json из моего метода Ajax :
{«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()));
}
Вот мой javascript, где мне нужно получить значения ключей
function showModalTempsPartenaire($id_ac){
var $id_ac = $id_ac;
$.post($url "/ajax/get_acteur", {
id_ac: $id_ac
}, function (data) {
if (data amp;amp; trim(data) != '')
console.log(data);
console.log(data['id_ac'])
});
}
В :
console.log(data);
Выводите меня :
{"id_ac":"32","mail_uniq_ac":"mail@gmail.com","id_civ":"2"}
но console.log(data[‘id_ac’]); возвращает неопределенный
Комментарии:
1. Используйте
console.log(data.id_ac)
вместо этого.2. Оба работают хорошо.
3. Учитывая
var data = {"id_ac":"32","mail_uniq_ac":"mail@gmail.com","id_civ":"2"};
,console.log(data['id_ac'])
будет вывод32
… Боюсь, ваши данные выглядят не совсем так, как вы их разместили
Ответ №1:
Вы кодируете данные в JSON на стороне сервера, используя json_encode()
, вам нужно декодировать их на стороне клиента, используя JSON.parse()
, чтобы вы могли получить из него информацию, например :
function showModalTempsPartenaire($id_ac){
var $id_ac = $id_ac;
$.post($url "/ajax/get_acteur", {
id_ac: $id_ac
}, function (data) {
if (data amp;amp; 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']);