Post data using angularjs to a PHP -


how can submit form , pass post data angularjs? know must trivial task can not see error.

that data feed post variables in php api consume webservice , return json , working when not use search function.

i have month , origin pass search function in controller, , in apiacp factory have resolve url: q.resolve(data);

when submit, console log says: "cannot read url property of undefined", can not see how inject endpoint url search function properly, search without parameters works fine.

here templates , search button :

 <form method="post" ng-controller="acpsearchctrl" ng-submit="searchacp(data)">     <select name="month" ng-model="data.month">     <option value="01">january</option>     <option value="02">february</option>     ...  </select>   <select name="origin" ng-model="data.origin">     <option value="99">onestate</option>     ...      ...  </select>  <input type="button" ng-click="search(data)" value="search"/> 

in controller try create search function wich not working says cannot read property url of undefined :

    .controller('acpsearchctrl', function($scope, apiacp, $timeout, $http, apiacpendpoint, $q) {     $scope.searchacp = function(data ) {     $scope.month = data.month;     $scope.origin = data.origin;     var q = $q.defer();     $http.post(apiacpendpoint.url, data)       .then(function(data) {                 console.log(data);           console.log(' - data.month '+data.month);           console.log(' - data.origin '+data.origin);           q.resolve(data);           console.log(' q.promise '+q.promise);           var acp = {};           acp.dados = [ data ];                 $scope.data = acp.dados;           console.log('data :'+$scope.data);            return q.promise;       });   } }) 

in services.js post data , works if not search month or origin :

.factory('apiacp', function($http, $q, apiacpendpoint) {    console.log('1. apiacpendpoint url ', apiacpendpoint.url)      var getapidata = function() {         var q = $q.defer();         $http.post(apiacpendpoint.url)     .success(function(data) {       q.resolve(data);     })     .error(function(error){       console.log('had error'+error)       q.reject(error);     })     return q.promise;   }   return {     getapidata: getapidata       }; }) 

apiacpendpoint should injected in controller definition/initialization, , not in $scope.search (same goes $http)

.controller('acpctrl', function($scope, apiacp, $ionicloading, $timeout, $http,  apiacpendpoint) {   $scope.data = null;   apiacp.getapidata()     .then(function(result) {             console.log(result);       $scope.headers = ['desc','real. month', 'real. year/month', 'plan. year/month', 'real. year'];       var acp = {};       $scope.data = acp.dados;       console.log(' scope.data '+$scope.data);     })    $scope.search = function(data) {     $http.post(apiacpendpoint.url,data)       .success(function(data){         console.log(' data : '+data);     })   } } 

Comments