2016-07-13 74 views
0

我正在使用AngularJS和codeigniter。在這裏,我想將我的emp_id從AngularJS控制器傳遞給codeigniter控制器。

在這裏,我使用$http.post將我的id傳遞給php。但我沒有在php控制器中獲得任何ID。我也試過其他$http方法,但我不能。

角JS控制器

angular.module('Myapp').controller('MYcntroller', function ($rootScope, $scope, $http, $timeout) { 
    $scope.$on('$viewContentLoaded', function() { 
     App.initAjax(); // initialize core components 
     Layout.setSidebarMenuActiveLink('set', $('#sidebar_menu_link_empmng')); // set profile link active in sidebar menu 
    }); 

    // set sidebar closed and body solid layout mode 
    $rootScope.settings.layout.pageBodySolid = true; 
    $rootScope.settings.layout.pageSidebarClosed = false; 

    var emp_id = 100; 

    $http.post(base_url+"CI_controller/getData", {'emp_id': emp_id}) 
    .success(function (response) { 
     // alert(response) 
     $scope.data = response.data 
    }); 

}); 

腓控制器

public function getData() { 
    //here $emp_id is null why? 
    $emp_id = $this->input->post('emp_id'); 
    $emp_data=$this->model->employee_details($emp_id); 
    echo '{"data":'.json_encode($emp_data).'}'; 
} 
+0

嘗試'$這個 - >後('emp_id')'而不是'$ this-> input-> post('emp_id')' –

+0

它不起作用 –

+0

嘗試將http標頭設置爲'Content-type:application/json' –

回答

0

使用HTTP POST這樣。

$http.post(base_url+"CI_controller/getData", {"emp_id": emp_id}) 
    .success(function (response) { 
     // alert(response) 
     $scope.data = response.data 
    }); 

因爲JSON對象鍵必須是字符串(即包含在雙引號「的字符序列)。

+0

對不起。仍然是一樣的 –

+0

@rogernm,試試這個'$ emp_id = json_decode(file_get_contents('php:// input'),TRUE);'用這個你可以在php中以數組的形式讀取post請求的主體,有更多的想法,它必須是你的codeigniter –

+0

裏面的一些配置問題,我不知道它爲什麼會發生。你有沒有其他的想法/ –

0

可能這可以幫助你

$YourPostData = file_get_contents("php://input"); 
$request = json_decode($YourPostData); 
$emp_id= $request->emp_id; 
相關問題