Datatables 'Показать все' lengthMenu выбрасывает недопустимую json ошибка - PullRequest
1 голос
/ 17 марта 2020

My dataTables время от времени выдает ошибку «INVALID JSON», когда я выбираю «All» из lengthMenu select input. Кто-нибудь знает, что является причиной проблемы. Вот мой скрипт dataTables:

    var dataTable = $('#info-table').DataTable({

        dom: 'lfrtipB',
        processing: true,
        serverSide: true,
        orderable: false,
        ajax: {
            url: 'core.php',
            type: 'POST',
            data: {action: 'fetch'},
            dataType: 'json',
        },
        searchable: true,
        pageLength: 10,
        lengthMenu: [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]],
    });

Это также мой процесс на сервере:

    $query = 'SELECT * from archive ';

        if (isset($_POST['search']['value'])) {
            $query .= 'WHERE sid LIKE "%' . $_POST["search"]["value"] . '%" ';
        }

        if (isset($_POST['length']) and $_POST['length'] != -1) {
            $query .= 'LIMIT ' . $_POST["start"] . ', ' . $_POST["length"] . ' ';
        }


    $statement = $conn->prepare($query);
    $statement->execute();
    $result = $statement->fetchAll();
    $filteredrows = $statement->rowCount();
    $data = array();
foreach ($result as $row) {
    $subarray = array();
    $subarray[] = $row['sid'];
    $subarray[] = $row['fname'] .' '. $row['lname'];
    $data[] = $subarray;
}

$output = array(
    'draw'            => intval($_POST['draw']),
    'recordsTotal'    => $filteredrows,
    'recordsFiltered' => $dbs->getTotalRecords('students'),
    'data'            => $data
);
echo json_encode($output);
exit();

Некоторые очки

  1. Я использую dataTables версии 1.10
  2. Иногда он просто выбрасывает недействительным json ошибка (все же, как крошечная ошибка, ее следует избегать).
  3. При возникновении ошибки, обращаясь к панели проверки Chrome, json возвращается успешно; однако он выдает недопустимую ошибку json.
  4. Это не просто опция «Показать все», очень редко в длинном меню «100» также возникает та же проблема. Но в большинстве случаев он работает правильно.
  5. dataTables никогда не встречается с ошибкой, когда я выбираю 10, 20 и 50 из lengthMenu выберите вход. PHP файл журнала ошибок '.
  6. У меня около 1000 строк в таблицах данных.
  7. Я использую последнюю версию WampServer (3.1.7) и работаю PHP 7.3.
  8. На сайте StackOverflow или на сайте dataTables нет ничего особенного в отношении проблемы.

Любая помощь будет принята с благодарностью!

1 Ответ

2 голосов
/ 17 марта 2020

Временами разочаровываясь из-за этой старой, тошнотворной ошибки dataTables, я снова уверяю себя, что dataTables 'invalid json' не имеет отношения к самому плагину, и определенно должно быть что-то еще, что вызывает проблему. В моем случае, два фактора были причиной проблем. Во-первых, если вы используете Phpstorm, он каким-то образом ограничивает некоторые файлы и выдает сообщение «Копировать URL авторизации в буфер обмена» по любой причине. Итак, вы собираетесь удалить порт, который использует Phpstorm, например, localhost: 63342 / site / index. php, где в этом случае следует удалить «: 63342», а затем оценить и протестировать сайт. Следовательно, основной причиной ошибочных json sporadi c dataTables является вмешательство порта Phpstorm. Всего наилучшего.

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