Я использовал запрос AJAX POST, чтобы заполнить свои данные. В моем php-файле у меня есть запрос, я сохраняю его в массиве и возвращаю как json. Но он возвращает «Нет данных ответа для этого запроса», хотя поля в php и базе данных одинаковы. Если я включу имя пользователя, произойдет ошибка. Пожалуйста, помогите мне исправить это.

Я уже изменил свое имя поля базы данных с UserName на username, но все равно не будет работать.

PHP-файл (user_action.php)

if ($_POST["action"] == 'fetch') { $query = "SELECT * FROM userslist "; if (isset($_POST["search"]["value"])) { $query .= 'WHERE UserName LIKE "%' . $_POST["search"]["value"] . '%" '; } if (isset($_POST["order"])) { $query .= 'ORDER BY ' . $_POST['order']['0']['column'] . ' ' . $_POST['order']['0']['dir'] . ' '; } else { $query .= 'ORDER BY id DESC '; } if ($_POST["length"] != -1) { $query .= 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length']; } $statement = $connect-{amp}gt;prepare($query); $statement-{amp}gt;execute(); $result = $statement-{amp}gt;fetchAll(); // var_dump($result); // exit(); $data = array(); $filtered_rows = $statement-{amp}gt;rowCount(); foreach ($result as $row) { // var_dump($row["window"]); // exit(); $sub_array = array(); $sub_array[] = $row["id"]; $sub_array[] = $row['UserName']; $sub_array[] = $row["UserDesignation"]; $sub_array[] = $row["UserType"]; $sub_array[] = $row["UserDesc"]; $sub_array[] = $row["status"]; $sub_array[] = $row["window"]; $sub_array[] = '{amp}lt;button type="button" name="edit_user" class="btn btn-primary btn-sm edit_user" id="' . $row["id"] . '"{amp}gt;{amp}lt;i class="fa fa-pencil"{amp}gt;{amp}lt;/i{amp}gt; Edit{amp}lt;/button{amp}gt; {amp}lt;button type="button" name="delete_user" class="btn btn-danger btn-sm delete_user" id="' . $row["id"] . '"{amp}gt;{amp}lt;i class="fa fa-trash"{amp}gt;{amp}lt;/i{amp}gt; Delete{amp}lt;/button{amp}gt;'; $data[] = $sub_array; } $output = array( "draw" ={amp}gt; intval($_POST["draw"]), "recordsTotal" ={amp}gt; $filtered_rows, "recordsFiltered" ={amp}gt; get_total_records($connect, 'userslist'), "data" ={amp}gt; $data ); echo json_encode($output); } 

AJAX (user.php)

 var dataTable = $('#user_table').DataTable({ "processing": true, "serverSide": true, "order": [], "ajax": { url: "dal/user_action.php", type: "POST", data: { action: 'fetch' } // dataType: "json", // error: function(result) { // alert(result); // }0 }, "columnDefs": [{ "targets": [0, 1, 2, 3, 4, 5, 6], // "targets": [0, 1, 2, 3, 4, 5, 6, 7], "orderable": false, }, ], }); 

Ошибки:

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

и

Нет данных ответа для этого запроса

Похоже, что ваш запрос в этом случае искажается, потому что вы не установили значение $_POST['length'] а следующее сравнение оценивается как true

 if ($_POST["length"] != -1){ ... } 

Попробуйте сначала установить значения по умолчанию

 $length = (isset($_POST["length"]))? $_POST["length"] : -1; $start = (isset($_POST["start"]))? $_POST["start"] : 0; if ($_POST["length"] {amp}gt; -1) { $query .= 'LIMIT ' . $start . ', ' . $length; }