Не выдает объект в ответе ajax

167
25 февраля 2019, 13:30

Формирую json

include ('config.php');
$STH = $DBH->query('
        SELECT 
            date, 
            new_users_count
        FROM
             H
        WHERE
             date BETWEEN "2018-10-01" AND "2018-10-19"');  
            $STH->setFetchMode(PDO::FETCH_ASSOC);  
                    while($row = $STH->fetch()) {  
                    $data= json_encode(
                     array(
                        'date'=>$row['date'],
                         'new_users_count'=>$row['new_users_count']
                            )
                        );  
                         echo $data;
                            }   

если напрямую зайти на этот php выдно что данные в json формате

затем пытаюсь получить

$.ajax({
  type: "POST",
  dataType:'json',
  url: "serverscript/output.php",
  success: function(json) {
    console.log(json);
  },
  error: function() {
    console.log("ERROR", this);
  }
 }); 

Выдает ошибку

error:function()
arguments:null
caller:null
length:0
name:""
Answer 1

Вы не отменяете стандартную отправку формы на сервер. Страница перегружается до того, как приходит ответ на ajax-запрос. Поэтому в консоли пусто.

Хорошо, добавьте в вызов ajax-a обработчик ошибок:

$.ajax({
  type: "POST",
  dataType:'json',
  url: "serverscript/output.php",
  success: function(json) {
    console.log(json);
  },
  error: function() {
    console.log("ERROR", this);
  }
 });    

А-а-а. Стоп. Все понятно.

Вы выводите в цикле куски JSON-a, но, склеенные вместе в ответе на запрос, они не являются правильным JSON-ом. Соберите сначала все данные, которые надо вернуть, в массив, а потом, после цикла, обработайте их json_encode-ом перед вызовом echo.

Кстати, год назад Вы уже сталкивались с этой проблемой:

Вывод ajax json

READ ALSO
Отрисовка текста в QRect

Отрисовка текста в QRect

Есть окно с кастовыми диаграммами, в котором можно менять шаг сетки по времени и масштаб в пикселях: После каждого изменения происходит перерисовка...

168
Выход из цикла ввода при нажатии кнопки enter

Выход из цикла ввода при нажатии кнопки enter

Как сделать выход из цикла при нажатии кнопки enter?

135
Не работает скроллинг у QWidget

Не работает скроллинг у QWidget

Есть окно с кастомными виджетами-диаграммами и виджетами-временным-шкалами: Изначально размер виджета-диграммы задаётся в конструкторе...

131
Перевод функции на MASM в C++

Перевод функции на MASM в C++

Учу C++ и разбирая один проект наткнулся на то что автор часть функций (основных) реализовал на MASM, а очень плохо разбираюсь в MASM, и в интернете...

169