我正在尝试向我的Slim API发送表单中的数据。
我的表格是:
<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函数中访问我的表单内容。我知道我可以在网址中传递这些信息,但我想要一种不需要我这样做的方法。
答案 0 :(得分:0)
当您使用请求方法&#39; POST&#39;您可以在请求的BODY中传递一些信息。
在角度你可以这样做:
在$http.post('api/New_User')
函数中传递对象
$ http.post(&#39; API / New_User&#39;,对象)
<强> 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/
答案 1 :(得分:0)
我找到了解决方案,它与Alvaro建议完全一样,但API中的代码有点不同:
function addUser($req, $resp, $args) {
$user = json_decode($req->getBody());
$user->privilege;
}
答案 2 :(得分:0)
我找到了解决方案,就像Alvaro说的那样,但有点不同。
在PHP中:
function addUser($req, $resp, $args) {
$user = json_decode($req->getBody());
//Than I can just use
$user->username;
$user->password;
}