У меня есть проблема в форме angularjs, мне не удается получить данные из формы (модель ng) с помощью php.
<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 ().
$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'];
Вы можете прочитать больше об этом здесь:
Других решений пока нет …