2016-08-04 92 views
0

在这里,我特林从数据库中获取数据,并显示在下拉列表中选择时,它会被存储在数据库中,我使用angularjs和PHP,但不幸的是米没有得到任何东西在下拉列表...请帮助我..在此先感谢..数据没有显示到下拉列表中使用angularjs和PHP

这是我的HTML代码。

<select class="form-control" ng-model="bookInfo.site1" placeholder="sites"> 
      <option ng-repeat="site in bookInfo.site1" value="{{site.Sites}}">{{site.Sites}}</option> 
     </select> 
<select class="form-control" ng-model="bookInfo.site2" placeholder="sites"> 
      <option ng-repeat="site in bookInfo.site2" value="{{site.Sites}}">{{site.Sites}}</option> 
     </select> 

这是我的服务

app.factory('SiteService', ['$http', '$q', function($http, $q){ 
    return { 
     getSite1: function(){ 
      return $http.get('endpoints/selectsite.php').then(function(result) { 
       return result.data; 
      }); 
     }, 
     getSite2: function(animal){ 
      return $http.get('endpoints/selectsite.php').then(function(result){ 
       return result.data; 
      }); 
     } 
    }; 
}]); 

这是我的控制器

$scope.bookInfo = { 

    sites1: [], 
    sites2: [] 
} 

//functions 

SiteService.getSite1().then(function(data){ 
    $scope.bookInfo.sites1 = data; 
}); 

SiteService.getSite2().then(function(data){ 
    $scope.bookInfo.sites2 = data; 
}); 

$scope.bookVisit = function(){ 

var data = { 

    site1: $scope.bookInfo.site1, 
    site2: $scope.bookInfo.site2 
} 
$http.post("endpoints/book.php", data).success(function(response){ 
    console.log(response); 
    $state.go("application"); 
}).error(function(error){ 
    console.error(error); 
}); 
} 

这是我的PHP代码

<?php 
    include("../connection.php"); 

    $query = "SELECT Sites FROM sitemaster"; 

    $rs = $db->query($query); 

    while($row = $rs->fetchAll()){ 
     $data[] = $row; 
    } 
    print json_encode($data); 

?> 
+0

什么都不会从您的工厂返回。使用承诺。我看到你已经包含'$ q'为什么你不使用它? –

+0

可否请详细解释..实际上,新的角js所以米没有得到发生什么.. –

回答

0

改变你的工厂是这样的:

app.factory('SiteService', ['$http', '$q', function($http, $q){ 
    return { 
     getSite1: function(){ 
      var do = $q.defer(); 
      $http.get('endpoints/selectsite.php').then(function(){ 
       do.resolve; 
      }, 
      function(){ 
       do.reject; 
      }); 
      return do.promise; 
     }, 
     getSite2: function(animal){ 
      var do = $q.defer(); 
      $http.get('endpoints/selectsite.php').then(function(){ 
       do.resolve; 
      }, 
      function(){ 
       do.reject; 
      }); 
      return do.promise; 
     } 
    }; 
}]); 

我相信这应该解决您的问题。 也从您的控制器中删除$http.post,如果您有工厂,请将所有与api/ajax相关的代码放在那里,就像您对get请求所做的一样。

+0

谢谢先生...让我试试看... –

+0

和我应该怎么做我的html代码? ? –

+0

html似乎没问题。 –