Предупреждение о таблицах данных: недопустимый ответ JSON

#php #jquery #ajax #server-side

#php #jquery #ajax #на стороне сервера

Вопрос:

Я начинаю использовать PHP и некоторые другие языки, связанные с ним. Я видел различные учебные пособия онлайн, которые помогают мне понять это. Однако у меня возникли трудности со следующим кодом ниже:

 <!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
  <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
  <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
  <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
</head>
<body>
  <div class="container">
    <h1>Processed Tickets</h1>
    <table id="example" class="display" cellspacing="0" width="100%">
      <thead>
        <tr>
          <th>ticket_id</th>
          <th>ticket_reviewid</th>
          <th>ticket_enduser</th>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <th>ticket_id</th>
          <th>ticket_reviewid</th>
          <th>ticket_enduser</th>
        </tr>
      </tfoot>
    </table>
  </div>
  <script>
    $(document).ready(function() {
      var dataTable = $('#example').DataTable({
        "processing": true,
        "serverSide": true,
        "ajax": {
          url: "includes/fetch.php",
          type: "post"
        }
      });
    });
  </script>
</body>
</html>
  
 $dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "dbfraudsupport";

$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName)
  or die("Connection Failed".mysqli_errno());

$request = $_REQUEST;
$col = array(
  0 => 'ticket_id',
  1 => 'ticket_reviewid',
  2 => 'ticket_enduser'
);

$sql = "SELECT * FROM tbltickets";
$query = mysqli_query($conn, $sql);    
$totalData = mysqli_num_rows($query);      
$totalFilter = $totalData;      
$data = array();

while($row = mysqli_fetch_array($query))
{
  $subdata = array();
  $subdata[] =  $row[0];
  $subdata[] = $row[1];
  $subdata[] = $row[2];
  $data[] = $subdata;
}

$json_data = array(
  "draw" => intval($request['draw']),
  "recordsTotal" => intval('$totalData'),
  "recordsFiltered" => intval('$totalFilter'),
  "data" => $data
);

echo json_encode($json_data);
  

Ошибка

Предупреждение о таблицах данных: идентификатор таблицы = example — недопустимый ответ JSON. Для получения дополнительной информации об этой ошибке, пожалуйста, смотритеhttp://datatables.net/tn/1

Я не знаю, что не так. Я просто хочу, чтобы мои данные из моей базы данных отображались на моей веб-странице. Заранее спасибо.

Комментарии:

1. Вы нажали на ссылку в ошибке? Документация там очень четкая

2. echo json_encode ($ json_data); exit; таким образом, это позволит избежать каких-либо ненужных пробелов или HTML-кода.

3. не могли бы вы, пожалуйста, опубликовать образец json данных, которые возвращаются в DataTable

4. Примечание: При создании индексированного массива в PHP вам не нужно записывать имя ключа (0, 1, 2 и т.д.).

5. Похоже, у вас опечатка: mysqli_querry должно быть mysqli_query