Основываясь на ответе @Bluetree, добавление ключей для dataTable не потребовалось.
Правильный подход состоит в том, что кодированные массивы данных должны сначала вводиться с помощью строки данных «data» внутрисначала массив, потому что нам просто нужно следовать формату, необходимому для dataTable.
<?php
include_once('../../components/db.php');
$sql = "SELECT * FROM products WHERE status='active'";
$query = $conn->query($sql);
while($data=$query->fetch_assoc()){
$image = '<img width="50" height="40" class="rounded-circle" src="../' . $data['image'] . '">';
$buttons = '<a href="product-update.php' . $data['id'] . '" class="btn btn-info btn-sm"><i class="fa fa-edit" aria-hidden="true"></i></a><a onclick="removeProduct(' . $data['id'] . ')" class="btn btn-danger btn-sm"><i class="fa fa-trash" aria-hidden="true"></i></a>';
// instead of just $result[], we need to use $result[data][] in order to use it for dataTable
$result["data"][] = array(
$data['names'],
$data['description'],
$data['price'],
$image,
$data['availability'],
$buttons,
);
}
echo json_encode($result);
// console.log output would be {"data":[["Blueberry Cheesecake"," This blueberry cheesecake starts with a buttery graham cracker crust, a creamy cheesecake center, and a tangy blueberry swirl.","80.00","","Available","<\/i><\/a><\/i><\/a>"],["Fruity Split","Dessert made with a split banana, ice cream, sauce, whipped cream, nuts, and a strawberry.","50.00","","Available","<\/i><\/a><\/i><\/a>"],["Pancake","Pancake topped with blueberry and strawberry.","80.00","","Available","<\/i><\/a><\/i><\/a>"],["Steak","Steak. . . . . in which I need to output
?>
AJAX в dataTable должен иметь URL-адрес и сами данные. предоставляя его просто:
$('#example').dataTable( {
"ajax": "data.json",
}
} );
было бы кратким способом его кодирования следующим образом:
$('#example').dataTable( {
"ajax": {
"url": "data.json",
"data": {
"user_id": 451
}
}
} );
, потому что в первом примере формата ajax уже есть URL-адрес и сами данные. возвращаемое значение в url - это сами данные, а url для ajax - это сам url. таким образом, нам нужно иметь «данные» внутри возвращаемого значения в закодированном результате массива.