3

I have form like below. Here I have taken value of each element and send it to server via ajax call. Is their any easy way to send request to server using all values in form ?? I am a newbie please help. My form has a lot of element its very hard to take value of all element, is their any alternative method?

<div ng-app="Myapp">
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-messages.js"></script>
    <script>
        var Myapp = angular.module('Myapp', ["ngRoute"]);
    </script>

    <div ng-controller="orderFormController">
        Item1<input type="text" name="item1"  ng-model='item1'><p></p>
        Item2 <input type="text" name="item2"  ng-model='item2'><p></p>
        Item3 <input type="text" name="item3"  ng-model='item3'><p></p>
         Item4 <input type="text" name="item4"  ng-model='item4'><p></p>
        Item5 <input type="text" name="item5"  ng-model='item5'><p></p>
        <button type="button"  ng-click='saveAll()' >SAVE ORDER</button>
    </div>    
    <script>
        Myapp.controller('orderFormController', ['$scope', '$http', function ($scope, $http) {

                 var data = {};
                $scope.saveAll = function () {
                    data = {'item1': $scope.item1,'item2': $scope.item2,'item3': $scope.item3,'item4': $scope.item4}
                    $http.post("order/save/", data
                        ).success(function (res, status, headers, config) {
                    if (res == 'success')
                    {
                        $scope.message = res;
                    }
                    else
                    {
                        $scope.message = res;
                    }
                }).error(function (res, status) { 
                    $scope.message = res;
                });
                }

            }]);

    </script>               
1

2 Answers 2

2

Place a parent object on the scope and wire your properties to it. The parent object is then what you send.

<div ng-app="Myapp">
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-messages.js"></script>
    <script>
        var Myapp = angular.module('Myapp', ["ngRoute"]);
    </script>

    <div ng-controller="orderFormController">
        Item1<input type="text" name="item1"  ng-model='data.item1'><p></p>
        Item2 <input type="text" name="item2"  ng-model='data.item2'><p></p>
        Item3 <input type="text" name="item3"  ng-model='data.item3'><p></p>
         Item4 <input type="text" name="item4"  ng-model='data.item4'><p></p>
        Item5 <input type="text" name="item5"  ng-model='data.item5'><p></p>
        <button type="button"  ng-click='saveAll()' >SAVE ORDER</button>
    </div>    
    <script>
        Myapp.controller('orderFormController', ['$scope', '$http', function ($scope, $http) {

                 var data = {};
                $scope.data = data;
                $scope.saveAll = function () {
                    $http.post("order/save/", data
                        ).success(function (res, status, headers, config) {
                    if (res == 'success')
                    {
                        $scope.message = res;
                    }
                    else
                    {
                        $scope.message = res;
                    }
                }).error(function (res, status) { 
                    $scope.message = res;
                });
                }
Sign up to request clarification or add additional context in comments.

Comments

1

The right way is to just send your model to the server, using $resource (for REST)

<div ng-controller="orderFormController">
    Item1
    <input type="text" name="item1" ng-model='item.item1'><p></p>
    Item2 
    <input type="text" name="item2" ng-model='item.item2'><p></p>
    Item3 
    <input type="text" name="item3" ng-model='item.item3'><p></p>
    Item4 
    <input type="text" name="item4" ng-model='item.item4'><p></p>
    Item5 
    <input type="text" name="item5" ng-model='item.item5'><p></p>

    <button type="button"  ng-click='saveAll()' >SAVE ORDER</button>
</div>  

$scope.item.$save(function(data) {

});

$item is a angularjs resource

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.