2016-02-11 3 views
0

Мой PHP выводит данные, как это:Read PHP выход из массива с AJAX

$data['full_feed'] = $sxml; 
$data['other_stuff']= $new; 
echo json_encode($data); 

Итак, в моем JQuery, я это делаю.

$.ajax({ 
    url: 'untitled.php', 
    type: 'GET', 
success: function(data) { 
    console.log(data['full_feed']); 
}); 

Это возвращается не определено. Также console.log(data.full_feed). Я возвращаюсь из PHP к действительному объекту JSON, но не могу понять, как я могу «правильно разобрать» его.

+3

Вы не сказали jquery, что вы ожидаете от json, поэтому 'data' будет простой строкой. либо используйте '.getJSON()' вместо этого, либо включите 'dataType: 'json'' –

+0

@MarcB Wow. Не знаю, как я пропустил этот. Это сделал трюк. Благодарю. – jonmrich

ответ

0

Параметр «данные» в ответе с функцией jQuery.parseJSON. Затем используйте значение parsed.full_feed. Как показано ниже:

$.ajax({ 
    url: 'untitled.php', 
    type: 'GET', 
success: function(data) { 
    data = jQuery.parseJSON(data); 
    console.log(data.full_feed); 
}); 
0

Вы можете сделать как @ tilz0R сказал или для примера на работу вы должны сообщить браузеру, что вы отправляете ответ JSON. Поэтому необходимо установить заголовок типа контента, например

header('Content-Type: application/json'); 
echo json_encode($data); 

, чтобы увидеть, что сервер возвращает, выполните console.log (данные типа). Если это строка, вам нужно ее проанализировать. если его объект, он уже разобран.

Также вы можете поместить dataType: 'json' в свой вызов ajax, чтобы jquery знал, что вы исключаете ответ json.

Смежные вопросы