Отправка данных может производиться различными методами, но в данном случае мы рассмотрим отправку данных методом post().
Пусть у нас определена следующая страница:
<!doctype html> <html ng-app="questApp"> <meta charset="utf-8" /> <head> <div ng-controller="AnswerController"> <form name="answerForm"> <fieldset> <p><label for="answerText">Текст ответа</label> <input id="answerText" ng-model="answer.text" required placeholder="Введите ответ" /></p> <p><label for="answerAuthor">Автор ответа</label> <input id="answerAuthor" ng-model="answer.author" required placeholder="Введите автора" /></p> </fieldset> <p><button type="submit" ng-click="save(answer, answerForm)">Сохранить</button></p> </form> <div>Ответ:</div> <p ng-bind="response.text"></p> <p ng-bind="response.author"></p> </div> <script src="js/lib/angular.min.js"></script> <script src="js/app.js"></script> <script src="js/controllers/AnswerController.js"></script> </body> </html>
Кроме формы ввода я еще определил поля, которые привязываются к ответу с сервера.
Контроллер в файле AnswerController.js тогда у нас будет выглядеть следующим образом:
questApp.controller('AnswerController', function AnswerController($scope, $http){ $scope.response={}; $scope.save = function (answer, answerForm){ if(answerForm.$valid){ $http.post("postAnswer.php", answer).then(function success (response) { $scope.response=response.data; }); } }; } )
Метод $http.post()
отправляет объект answer по адресу postAnswer.php
При удачной обработке ответа метод success(function (answ)
отправленный сервером объект answ
и устанавливает его в
качестве значения $scope.response
Скрипт postAnswer.php
будет просто получать объект в json формате и его же отправлять в том же формате:
<?php $answer = json_decode(file_get_contents('php://input'), true); if(isset($answer['author']) && isset($answer['text'])) { echo json_encode($answer); } else { echo "Введенные данные некорректны"; } ?>