phpangularjsangularjs-ng-init

send ng-init variable with $http.post , angularJs


How can I initialize a $scope variable using PHP so that it can be sent to the server later in an $http.post request? I tried with ng-init but it doesn't seem to work:

<body ng-app="app" ng-controller="ctrl" ng-init="name='<?php echo $_GET['search']; ?>'">
    <pre>
        {{result}}
    </pre>
</body>
<script>
    var app = angular.module('app',[]);
    app.controller('ctrl',function($scope,$http){
        $http.post('post.php',{'var1': $scope.name,'var2':'test'}).then(function(response) { $scope.result = response.data; });
    });
</script>

Solution

  • Maybe try something like this:

    <body ng-app="app" ng-controller="ctrl" ng-init="postMethod()">
        <pre>
            {{result}}
        </pre>
     </body>
    <script>
        var app = angular.module('app',[]);
        app.controller('ctrl', function ($scope, $http) {
            $scope.myVar = '<?php echo $_GET['search']; ?>';
            $scope.postMethod = function(){
                $http.post('post.php',{'var1': $scope.myVar,'var2':'test'}).then(function(response) { $scope.result =      response.data; });
            };
        });
    </script>