2017-01-17 2 views
-1

Я использую угловые как frontend и php в качестве backend здесь - код углового.angular-php: данные формы пустые в php

$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.

+0

'headers: {'Content-Type': 'application/x-www-form-urlencoded'}' <- Вы действительно знаете, что это делает? – Phil

+0

Используйте '$ formData = $ req-> data;' вместо '$ formData = $ req-> formData;' поскольку параметр 'data' не' formData'. –

ответ

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 по умолчанию (application/json).

0

Попробуйте, как это ..

$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

Как это помогает OP получить данные с клиентской стороны? – Phil

Смежные вопросы