使用angularjs将数据发布到PHP

使用angularjs将数据发布到PHP,php,angularjs,ionic,Php,Angularjs,Ionic,如何提交表单并将post数据传递给angularjs?我知道这一定是件小事,但我看不出我的错误 该数据将提供PHPAPI中的post变量,该变量使用webservice并返回JSON,当我不使用搜索函数时,该变量起作用 我有month和origin传递给控制器中的搜索功能,在ApiAcp工厂,我有一个来自url的解析:q.resolve(数据) 当我提交时,控制台日志显示:“无法读取未定义的url属性”,我看不到如何将端点url正确地注入搜索函数,因为没有参数的搜索工作正常 以下是模板和搜索按钮

如何提交表单并将post数据传递给
angularjs
?我知道这一定是件小事,但我看不出我的错误

该数据将提供
PHP
API
中的post变量,该变量使用
webservice
并返回
JSON
,当我不使用搜索函数时,该变量起作用

我有
month
origin
传递给控制器中的搜索功能,在ApiAcp工厂,我有一个来自
url的解析:q.resolve(数据)

当我提交时,控制台日志显示:“无法读取未定义的
url
属性”,我看不到如何将端点
url
正确地注入搜索函数,因为没有参数的搜索工作正常

以下是模板和搜索按钮:

 <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"/>
在Services.js中,我会发布数据,如果我不按月份或来源进行搜索,它会起作用:

.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 an error'+error)
      q.reject(error);
    })
    return q.promise;
  }
  return {
    getApiData: getApiData    
  };
})

ApiAcpEndpoint应该注入控制器定义/初始化中,而不是注入$scope.search中(对于$http也是如此)


谢谢你,皮埃尔,这是我的工作!现在,当我提交到达端点时,剩下的唯一问题是数据未定义,
data
未定义?我看到一些
数据
变量:)是搜索函数中的数据。我更改为表单提交:ng submit=“搜索(数据)现在,数据出现在console.log上,但似乎表单没有提交到模板,因为数据保持不变。月份和来源字段绑定正确,我可以在模板和console.log上选择它们时看到它们的值,但它们不会修改Web服务的url,结果始终是实际月份。我确实将搜索隔离到他自己的控制器中,但仍然无法获取数据
.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 an error'+error)
      q.reject(error);
    })
    return q.promise;
  }
  return {
    getApiData: getApiData    
  };
})
.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 from : '+data);
    })
  }
}