2017-06-16 55 views
1

我試圖從provinceDatagetFunction()獲取provCodeID。我通過使用angular.forEach()來做到這一點,但我並沒有預料到會出現以下錯誤。未定義的屬性:stdClass:使用AngularJS + PHP


注意:未定義的屬性:stdClass的:: $ provCode在C:\ XAMPP \ htdocs中\上線
[]

學生違反系統\ PHP \地址\ cities.php

我試圖將{provCode: provCode}更改爲只是provCode也無法正常工作。

所以,我試圖改變{provCode: provCode}{provCode: '0456'}它的工作原理。

但是,這不是我想要的,我希望它是動態的。我想知道它爲什麼說Undefined property,因爲我試圖console.logprovCodegetCity()裏面,它的預期值爲0456。所以,我想知道它爲什麼說Undefined property

app.factory

factory.getProvince = function(){ 
    return $http.get('php/address/province.php').then(function(response){ 
     provinceData = response.data; 
     console.log(provinceData); 

     angular.forEach(provinceData, function(value, key) { 
      if(value.provDesc == province){ 
       provCode = provinceData[key].provCode; 
      } 
     }); // angular.forEach 

     return provinceData; 
    }) 
} 

factory.getCity = function(){ 
    return $http.post('php/address/cities.php', {provCode: provCode}).then(function(response){ 

     console.log(provCode); 

     municipalityData = response.data; 
     console.log(municipalityData); 
     return municipalityData; 
    }) 
} 


return factory; 

cities.php

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

$data = json_decode(file_get_contents("php://input")); 
$provCode = $data->provCode; 

$db->query('SET CHARACTER SET utf8'); 
$cities = $db->query(" SELECT * FROM refcitymun WHERE provCode='$provCode' "); 

$cities = $cities->fetchAll(); 

echo json_encode($cities); 
?> 

UPDATE

我日誌$datacities.php一nd它正在返回null值。我不知道爲什麼,因爲我console.logprovCode裏面的getCity函數,它正在返回我期待的正確值/數據。有人可以向我解釋發生了什麼嗎?我的頭腦在這一個瘋狂。

到它是如何解決這個問題,我的我的目標努力一個方式:Anglularjs passing value from Controller, State Resolve and Factory Service

+0

一旦登錄'$ data',看看你是否得到數據與否。 – SaiUnique

+0

我如何記錄$數據? – Marksmanship

+0

我記錄$數據,它返回'null' – Marksmanship

回答

0

看來你定義provCode爲全局變量。嘗試首先將它聲明爲工廠的私有變量。

function MyFactory($http) { 
    let provCode = 0; 
    return { 
    getProvince: function() { 
     return $http.get('php/address/province.php') 
     .then(function(response){ 
      // do some stuff 
      angular.forEach(provinceData, function(value, key) { 
      if(value.provDesc == province){ 
       provCode = provinceData[key].provCode; 
      } 
      }); // angular.forEach 
     }) 
    }, 
    getCity: function() { 
     return $http.post('php/address/cities.php', {provCode: provCode}) 
     .then(function(response){ 
      // do some stuff 
     }) 
    } 
    }; 
} 
angular 
    .module('app') 
    .factory('MyFactory', MyFactory); 
+0

是provCode'我已經'app.factory' 'app.factory( '的DataService',函數($ stateParams,$ HTTP)內聲明 – Marksmanship

相關問題