SyntaxError: неожиданный конец ввода JSON, но файл PHP в порядке - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь показать некоторые данные, полученные с помощью php через систему JSON / Ajax, но я получаю эту ошибку: [object Object] |parsererror |SyntaxError: Неожиданный конец ввода JSON

Мой сценарий php работает (я вижу вывод JSON при вводе каталога php-файлов непосредственно в браузере):

  "action": "success",
  "message": {
    "statusFin": {
      "txtStatus": "fin"
    },
    "statusCom": {
      "txtStatut": "comm"
    },
    "statusattLiv": {
      "txtStatut": "attLiv"
    },
    "statusLiv": {
      "txtStatut": "Liv"
    },
    "statusFac": {
      "txtStatut": "Fac"
    }
  }
}

Мой сценарий довольно прост, я сейчас пытаюсь показать сообщение журнала:

    $.ajax({
          async: false,
          url: DIR_URL + 'ajax/nameOfFile.php',
          type: 'POST',
          data: {'day': day, 'week': week, 'month': month, 'year': year},
          dataType: 'json',
          success: function(datta, status){
            console.log('outpuut AJAX : success ');
          },
          error : function(result, status, errorText){
            console.log('outpuut AJAX : ' + result + ' | ' + status + ' | ' + errorText);
          }
        });

[EDIT] PHP-файл:

    <?php
$msgErrorJSON = 'und';
$ret = array(
    'action'  => 'erreur',
    'message' => array()
);

$listInfo['statusFin']['txtStatus']         = 'fin';
$listInfo['statusCom']['txtStatut']         = 'comm';
$listInfo['statusattLiv']['txtStatut']      = 'attLiv';
$listInfo['statusLiv']['txtStatut']         = 'Liv';
$listInfo['statusFac']['txtStatut']         = 'Fac';

$ret['action'] = 'success';
$ret['message'] = $listInfo;

$retJSON = json_encode($ret);

echo $retJSON;

Это всегда приводит к ошибкеи я получаю: [объект объекта] |parsererror |SyntaxError: Неожиданный конец ввода JSON

Надеюсь, все ясно, заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 12 июля 2019

Я думаю, что ошибка связана с этой строкой.

echo $retJSON;

Поскольку $ restJSON содержит данные в виде массива или может быть массивом с объектом. используйте print_r для печати этого json.

print_r($retJSON);
0 голосов
/ 17 июля 2019

Я не мог поставить ответ раньше из-за политики ожидания 2 дня (а потом я забыл, извините), так что вот она: проблема была с отображением, я забыл добавить путь к файлу PHP в моем контроллере.... Спасибо всем.Хорошего дня.

0 голосов
/ 12 июля 2019

замените ваш ajax и попробуйте его

$.ajax({
      url: DIR_URL + 'ajax/nameOfFile.php',
      type: 'POST',
      data: {'day': day, 'week': week, 'month': month, 'year': year},
      success: function(datta, status){
        console.log('outpuut AJAX : success ');
      },
      error : function(result, status, errorText){
        console.log('outpuut AJAX : ' + result + ' | ' + status + ' | ' + errorText);
      }
    });

и в php $ _POST ['day'] и получите данные о параметрах дня,

и для ваших $retJSON = json_encode($ret); данных просто укажите var obj = JSON.parse(datta); в вашем успехе ajax и напечатайте obj в вашей консоли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...