AJAX JSON декодирование возвращает неопределенные не данные - PullRequest
0 голосов
/ 28 июля 2011

Я пытаюсь извлечь данные json через ajax из скрипта PHP, но это не работает.

while ($row = mysql_fetch_array($result)) {
    $response = array(
    'hello' => $row['name']
    );


    $responses[] = $response;

}

echo json_encode($responses);

Тогда я использую этот JavaScript

$('.clickme').click(function() {
    $.ajax({
    url: 'http://example.com/testFixGet.php?department=1',
    dataType: 'json',
    data: 'manufacturer=alpine,kicker',
    success: function(json) {
            alert(json['hello']);
     $('.result_new').html(json);
     }
});
});

В диалоговом окне отображается: «Не определено»

Но, если я действительно загружаю php-страницу, данные декодируются в формате json, и это выглядит так:

[{"hello":"Rand McNally Soft Case for Most 5\" GPS"}]

Ответы [ 3 ]

0 голосов
/ 28 июля 2011

Вы устанавливаете тип контента?

header('Content-type: application/json');

И кстати

[{"hello":"Rand McNally Soft Case for Most 5\" GPS"}]

это массив, поэтому он будет

alert(json[0]["hello"]);

Для цикла

var bar = [{"a":"1"},{"a":"2"},{"a":"3"}]
$.each( bar, function(i, jObj){
   alert( jObj.a );

});
0 голосов
/ 28 июля 2011

Попробуйте это:

$('.clickme').click(function() {        
  $.getJSON('testFixGet.php', { manufacturer: "alpine,kicker", department: "1" },  function(json) {                     
            alert(json[0].hello);   
            $('.result_new').html(json);
  }  );
}
0 голосов
/ 28 июля 2011

Вы заметите, что ваша полезная нагрузка JSON содержит массив с одним элементом объекта.Попробуйте

alert(json[0]['hello']);

Кроме того, getJSON() гораздо лаконичнее

$('.clickme').click(function() {
    $.getJSON('http://example.com/testFixGet.php', {
        department: 1,
        manufacturer: 'alpine,kicker'
    }, function(json) {
        // loop over results
        for (var i = 0; i < json.length; i++) {
            var response = json[i];
            console.log(response);
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...