Вы можете разделить два файла, файл, который получает данные без echo
:
получить-data.php
$sql = "SELECT * FROM animals ORDER BY age DESC";
$result = $conn->query($sql);
$animals = [];
while($row = $result->fetch_assoc()) {
$animal = new Animals($row['name'], $row['species'], $row['color'], $row['age']);
array_push($animals, $animal);
}
И еще один файл для результата JSON, который реализует оператор echo и включает в себя первый:
получить-данных json.php
include 'you_path_here/get-data.php';
echo json_encode($animals);
Тогда переменная URL в вашем коде JS должна вызывать маршрут JSON, например:
var url = "../../DB/get-data-json.php";