Intereting Posts
updatin xml в php Laravel 4 Queue – В пространстве имен «queue» нет команд Лучший способ найти различия между двумя большими массивами в PHP Как автоматически прокручивать нижнюю часть окна текстового файла? MySQL SELECT женщины не мужчины Как я могу запустить mysql-запрос, когда пользователь выбирает новую опцию в поле выбора? Как я могу отправить запрос ajax в файл php-файла контроллера из файла tpl в корзине CS? $ _POST пуст после добавления нового типа ввода "файл" Динамическое название страницы? PHP включает ссылки? Создание одного массива из другого массива в php PHP: как использовать сеанс на одной странице, пока загружается другая страница с sesson простой массив в ассоциативный массив, основанный на «дереве каталогов», как значения первого Как мне получить доступ к данным PEST API PEST API на стороне сервера? Как правильно развернуть приложение Laravel из моей локальной среды на мой удаленный сервер? Удаление значений из базы данных MySQL с помощью AJAX без перезагрузки страницы (отредактировано)

Отображать данные, собранные с MYSQL на страницу html с помощью AngularJs и PHP

Я новичок в AngularJS. Я работаю над проектом, в котором приложение отображает контент из MYSQL (фиктивная таблица с данными рейса, которая содержит столбцы «Авиакомпании», «Вылет», «Прибытие», «Длительность и цена») в таблицу HTML с использованием PHP и AngualarJS. Я написал код для AngularJs и PHP. Теперь, когда я пытаюсь отобразить полученные данные в html, я не могу этого сделать (я попытался напрямую получить доступ к моему файлу PHP и отобразил данные в форме JSON). Пожалуйста, посмотрите мой HTML (flight.html) JAVASCRIPT / AngularJS (Авиабилеты.js) и код PHP (полеты.php):

HTML-код

<!DOCTYPE html> <html ng-app="mymodule"> <head> <title>Flights</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="Flights.js" type="text/javascript"></script> </head> <body ng-controller="myCtrl"> <table> <thead> <tr> <th>Airlines</th> <th>Departure</th> <th>Arrival</th> <th>Duration</th> <th>Price</th> </tr> </thead> <tbody> <tr ng-repeat = "flights in response"> <td>{{flights.Airlines}}</td> <td>{{flights.departure}}</td> <td>{{flights.Arrival}}</td> <td>{{flights.Duration}}</td> <td>{{flights.Price}}</td> </tr> </tbody> </table> </body> </html> 

КОД JAVASCRIPT

 var response; var app = angular.module('mymodule', []); app.controller('myCtrl', function($scope, $http) { $http.get("Flights.php") .success(function(response) { //$scope.myWelcome = response; //$scope.myWelcome = response.data; $scope.response = response.data; console.log(response); }) .error(function() { $scope.response = "error in fetching data"; }); }); 

PHP-код

 <?php $conn = mysqli_connect("localhost","","",'flight_details'); $data = array(); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } else { $sql = "select * from flights"; $result = $conn->query($sql); if($result->num_rows > 0) { while ($row = $result->fetch_array()) { $data[] = $row; } $res_final = json_encode($data); echo $res_final; } else { echo"0 results"; } $conn->close(); } ?> 

более того, когда я вижу консоль, я могу найти объекты (элементы массива) как Array [6] 0: Object1: Object2: Object3: Object4: Object5: Objectlength: 6__proto__: Array [0] К этому я знаю, что данные были переданы на javascript, но кодом Angularjs / javascript не подходит. Поэтому, пожалуйста, помогите мне с этим, и спасибо заранее

Ты должен сделать:

 $scope.response = response; 

вместо:

 $scope.response = response.data; 

Вот почему:

если вы используете обещание:

 .then(function successCallback(response) 

то вы должны сделать response.data ;

Поскольку вы используете .success , первым аргументом уже является ваш response.data . В этом случае вы назвали его «ответ», и это, возможно, смутило вас. При использовании .success избегать назначения аргумента как «ответа». Используйте что-то вроде:

  .success(function(data) { $scope.lstWeeklyMenu = data; 

Взгляните на: http://www.codelord.net/2015/05/25/dont-use-$https-success/

а также

https://www.peterbe.com/plog/promises-with- $ http

Вкратце:

Затем .then(response) вы получаете объект ответа:

Объект ответа имеет следующие свойства:

  • data – {string | Object} – тело ответа, преобразованное функциями преобразования.
  • status – {number} – код статуса HTTP ответа.
  • headers – {function ([headerName])} Функция заголовка заголовка.
  • config – {Object} – объект конфигурации, который использовался для генерации запроса.
  • statusText – {string} – текст ответа HTTP-ответа.

https://docs.angularjs.org/api/ng/service/ $ http

и используя .success() каждый из свойств ответа является аргументом:

.success (данные, статус)