在 Angular JS 中给我提交的表单内容的最佳方式
Best way to give slim the contente of my submited form in Angular JS
我正在尝试将表单中的数据发送到我的 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 函数中访问我的表单的内容。我知道我可以在 url 中传递这些信息,但我想要一种不需要我这样做的方式。
当您使用请求方法'POST'时,您可以在请求的 BODY 中传递一些信息。
在angular中你可以这样做:
在$http.post('api/New_User')
函数中传递对象
$http.post('api/New_User',object)
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/
我找到了解决方案,它与 Alvaro 建议的完全一样,但 API 中的代码有点不同:
function addUser($req, $resp, $args) {
$user = json_decode($req->getBody());
$user->privilege;
}
我找到了解决方案,就像 Alvaro 所说的一样,但有点不同。
在PHP中:
function addUser($req, $resp, $args) {
$user = json_decode($req->getBody());
//Than I can just use
$user->username;
$user->password;
}
我正在尝试将表单中的数据发送到我的 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 函数中访问我的表单的内容。我知道我可以在 url 中传递这些信息,但我想要一种不需要我这样做的方式。
当您使用请求方法'POST'时,您可以在请求的 BODY 中传递一些信息。
在angular中你可以这样做:
在$http.post('api/New_User')
函数中传递对象
$http.post('api/New_User',object)
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/
我找到了解决方案,它与 Alvaro 建议的完全一样,但 API 中的代码有点不同:
function addUser($req, $resp, $args) {
$user = json_decode($req->getBody());
$user->privilege;
}
我找到了解决方案,就像 Alvaro 所说的一样,但有点不同。
在PHP中:
function addUser($req, $resp, $args) {
$user = json_decode($req->getBody());
//Than I can just use
$user->username;
$user->password;
}