2015-12-25 5 views
0

У меня есть следующий PHP:запроса AJAX возвращает нуль

<?php 

$get_messages = mysqli_query($mysqli, "SELECT * FROM messages"); 

$messages = array(); 

while ($row = mysqli_fetch_array($get_messages)){ 

     $messages[] = array('name' => $row['name'], 'message' => $row['message']); 
} 

$json = json_encode($messages); 
echo $json; 

?> 

успешно повторить следующий JSON:

 [{"name":"Ernest","message":"hello"},{"name":"Ernest","message":"hello"},{"name":"john","message":"yes"},{"name":"Diana","message":"I know\r\n"},{"name":"fgafg","message":"fgehfegfvg"},{"name":"fgafg","message":"fgehfegfvg"},{"name":"fgafg","message":"fgehfegfvg"},{"name":"gsfvgx","message":"fbhfxvcz"},{"name":"argttrhjyrbsgdzdc","message":"ahjtgfrdcvdfsevb"}] 

Тогда у меня есть этот JS:

$(document).ready(function(){ 

    $.ajax({ 
    url: 'retrieve.php', 
    dataType: 'json', 
    success: function (response) { 
     alert(response[3]); 
    } 
    }); 
}); 

который предупреждает неопределенным ,

В чем проблема? Ваша помощь будет оценена по достоинству.

Примечание: Если изменить оповещение alert(response[3].name); или alert(response[3][name]); оповещения окно даже не появляется в партии

+0

А что, если вы просто сделать 'предупреждение (ответ);' – Musa

+0

Или '' 'console.log (ответ),' '' более легко изучить его в консоли JavaScript в браузеры. – MasterOdin

+0

А если вы используете 'header ('Content-type: application/json');' в начале вашего PHP-кода? – gabe

ответ

0

response представляет собой массив элементов с name и message свойствами. Поэтому вы должны в основном перебирать элементы и получать доступ к ним.

Вам необходимо убедиться, что ваш вызов ajax попал в обработчик success. Может быть добавлен обработчик error для его проверки.

success: function (response) { 

    $.each(response,function(a,b){ 
    alert(b.name); 
    alert(b.message); 
    });  

}, 
error : function(a,b,c){ 
    alert("error"); 
    alert(c); 
} 

Here является рабочим образцом перебора массива.

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

+0

Я пробовал перебирать его, как вы предлагали, но это тоже не сработало. Похоже, что объект JSON даже не передается моей функции AJAX – Ernie

+0

сделать console.log (ответ) и посмотреть, что произойдет. – Shyju

+0

Я получаю пустые скобки '[]' – Ernie

0

Try:

$.ajax({ 
       type: "POST", 
       data: { 
        message: JSON.stringify(message) 
       }, 
       url: "retrieve.php", 
       success: function(message) { 
         alert(message); 
       } 
      }); 
Смежные вопросы