angularjs — angular-php: данные формы пусты в переполнении стека

Я использую angular в качестве внешнего интерфейса, а php в качестве внутреннего — вот код angular.

$scope.processForm = function($scope.formData) {
console.log($scope.formData);
$http({
method  : 'POST',
url     : 'process.php',
data    : {'data': $scope.formData,'uid':uid}, // no need to use $.param, even never see it in angular
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
})

здесь process.php

$postContent= file_get_contents("php://input");
$req= json_decode($postContent);
$formData= $req->formData;
$uid= $req->uid;

Проблема в том, что $ formData пуст в php. однако $ uid показывает значение.

в форме у меня есть два ввода электронной почты и пароль, но я не знаю, как я могу использовать это в php, потому что formdata пусто.

Я проверил в firebug и нашел, что данные отправляют.

{"formData":{"password":"ff","cpassword":"errgreg"},"uid":"75"}:""

Но ничего не ответит вкладка Firebug.

-1

Решение

Предполагая, что вы вызываете свою функцию с чем-то вроде ng-submit="processForm(formData)" тогда это все, что вам действительно нужно

$scope.processForm = function(formData) {
$http.post('process.php', {
formData: formData, // note the key is "formData", not "data"uid: uid // no idea where uid comes from
});
};

Где у вас есть

$scope.processForm = function($scope.formData) {

даже не действительный JavaScript. Вы не можете использовать точечную запись объекта в именах аргументов функции. Это должно было привести к ошибке в вашей консоли.


Вы также неправильно указали тип содержимого вашего запроса. Вы отправляете JSON, а не application/x-www-form-urlencoded отформатированные данные. POST-тип Angular по умолчанию (application/json) достаточно.

1

Другие решения

Попробуй вот так ..

$json='{"formData":{"password":"ff","cpassword":"errgreg"},"uid":"75"}';
$req= json_decode($json);
$formData= $req->formData;
$uid= $req->uid;
$password = $req->formData->password;
$cpassword = $req->formData->cpassword;

ИЛИ преобразовать в массив, используя json_decode() со вторым аргументом как true,

$json='{"formData":{"password":"ff","cpassword":"errgreg"},"uid":"75"}';
$req= json_decode($json,true);//converts into array format
$formData= $req['formData'];
//print_r($formData);
echo $formData['password'];
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector