如何使用 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'];

您可以在此处阅读更多相关信息: