如何使用 php 从 angularjs 表单获取数据
How to get data with php from angularjs form
我在 angularjs 表单中遇到问题,我无法使用 php 从表单 (ng-model) 获取数据。
<div class="divProfil">
<form id="formProfil" ng-submit="submit()">
<p><span>Bonjour </span><input type="text" name="loginProfil" ng-model="loginProfil"/></p>
<p>Mon mot de passe: <input type="text" name="mdpProfil" ng-model="mdpProfil"/></p>
<p> Email: <input type="email" name="emailProfil" ng-model="emailProfil"/></p>
<input class="btn btn-primary" type="submit" value="Enregistrer"/>
</form>
</div>
我使用 $http 提交了表单,它工作正常但是当我尝试在 php 中执行时:
$login = $_POST['loginProfil'];
$mdp = $_POST['mdpProfil'];
$email = $_POST['emailProfil'];
这个变量都是空的。需要一些帮助,拜托!
我认为这可能是您发送的数据的序列化问题,尤其是当您使用 $http.post() 函数时。
如果你使用 $http.post() 然后在 PHP 端这样做:
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
否则,您需要使用 $.param() 函数更改 Angular 端的数据发送方式。
$http({
method : 'POST',
url : '<PATH_TO_END_POINT_HERE>.php',
data : {$.param($scope.formData), // pass in data as strings}
headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.success(function(data) {
console.log(data);
});
那么您应该可以在 PHP 端使用您的代码。
$email = $_POST['email'];
您可以在此处阅读更多相关信息:
我在 angularjs 表单中遇到问题,我无法使用 php 从表单 (ng-model) 获取数据。
<div class="divProfil">
<form id="formProfil" ng-submit="submit()">
<p><span>Bonjour </span><input type="text" name="loginProfil" ng-model="loginProfil"/></p>
<p>Mon mot de passe: <input type="text" name="mdpProfil" ng-model="mdpProfil"/></p>
<p> Email: <input type="email" name="emailProfil" ng-model="emailProfil"/></p>
<input class="btn btn-primary" type="submit" value="Enregistrer"/>
</form>
</div>
我使用 $http 提交了表单,它工作正常但是当我尝试在 php 中执行时:
$login = $_POST['loginProfil'];
$mdp = $_POST['mdpProfil'];
$email = $_POST['emailProfil'];
这个变量都是空的。需要一些帮助,拜托!
我认为这可能是您发送的数据的序列化问题,尤其是当您使用 $http.post() 函数时。
如果你使用 $http.post() 然后在 PHP 端这样做:
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
否则,您需要使用 $.param() 函数更改 Angular 端的数据发送方式。
$http({
method : 'POST',
url : '<PATH_TO_END_POINT_HERE>.php',
data : {$.param($scope.formData), // pass in data as strings}
headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.success(function(data) {
console.log(data);
});
那么您应该可以在 PHP 端使用您的代码。
$email = $_POST['email'];
您可以在此处阅读更多相关信息: