2016-01-26 33 views
0

我想發送到我的Slim API我的表格中的數據。最好的方式來給我的Angular JS slim我subimited表格的競爭者

我的形式是:

<form> 
    Username:<br> 
    <input type="text" name="username"><br> 
    Password:<br> 
    <input type="text" name="password"> 
    <input type="button" value="submit" ng-click="testDatabaseNewUser()"> 
</form> 

我的控制器:

angular.module('appDatabaseCtrl', []) 
.controller('databaseCtrl', ['$scope', '$http', '$log', 
    function($scope, $http, $log){ 
     $scope.testDatabaseNewUser = function(){ 
      $http.post('api/New_User').success(function(data) { 
       $log.info("succes!"); 
       $log.log(data); 
      }) 
      .error(function (data, status){ 
       $log.error("error!"); 
       $log.log(data); 
      }); 
     }; 
    } 
]); 

在我的API,我有:

<?php 

require 'vendor/autoload.php'; 
require 'config/config.php'; 

$app = new \Slim\App; 

$app->post('/New_User', 'addUser'); 

$app->run(); 

function DB_Connection() { 
    global $dbparams; 
    $dbhost = $dbparams['host']; 
    $dbuser = $dbparams['user']; 
    $dbpass = $dbparams['password']; 
    $dbname = $dbparams['dbname']; 
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    return $dbh; 
} 

function addUser($req, $resp, $args) { 
    ... 
} 

?> 

知道了這一切,我只是想訪問內容我的表單在我的addUser函數中。我知道我可以在URL中傳遞這些信息,但我希望有一種方法不需要我這樣做。

回答

0

我找到了解決辦法,這是完全一樣阿爾瓦羅建議,但在API中的代碼是一個有點不同:

function addUser($req, $resp, $args) { 
    $user = json_decode($req->getBody()); 
    $user->privilege; 
} 
0

當您使用請求方法'POST'時,您可以在請求的BODY中傳遞一些信息。

在角度,你可以這樣做:通過

的對象$http.post('api/New_User')功能

$ http.post( 'API/New_User',對象)

HTML

<form> 
    Username:<br> 
    <input type="text" name="username" ng-model="user.username"><br> 
    Password:<br> 
    <input type="text" name="password" ng-model="user.password"> 
    <input type="button" value="submit" ng-click="testDatabaseNewUser()"> 
</form> 

控制器

angular.module('appDatabaseCtrl', []) 
.controller('databaseCtrl', ['$scope', '$http', '$log', 
    function($scope, $http, $log){ 
     $scope.user = {}; 
     $scope.testDatabaseNewUser = function(){ 
      $http.post('api/New_User', $scope.user).success(function(data) { 
       $log.info("succes!"); 
       $log.log(data); 
      }) 
      .error(function (data, status){ 
       $log.error("error!"); 
       $log.log(data); 
      }); 
     }; 
    } 
]); 

在你PHP

function addUser($req, $resp, $args) { 
    ... 
    $req.body ... 
} 

我想這將有助於

http://www.angularcode.com/demo-of-a-simple-crud-restful-php-service-used-with-angularjs-and-mysql/

0

我找到了解決方案,它就像阿爾瓦羅說,但有一點不同。

在PHP:

function addUser($req, $resp, $args) { 
    $user = json_decode($req->getBody()); 

    //Than I can just use 
    $user->username; 
    $user->password; 
}