2016-05-22 3 views
0

Я работаю над AngularJs около недели, и я пытаюсь вставить значение в базу данных mysql через PHP.HTTP-запрос в AngularJS

мой form взгляд, как этот

<form ng-model="far_form" name="far_reg" ng-submit="register(far_reg.$valid)" novalidate="true" 
     ng-controller= "farform_contr"> 
     <input type="text" id="First Name" placeholder="Name" ng-model="far.first_name" > 
     <input type="text" id="Email" placeholder="Email" ng-model="far.email"> 
     <input type="text" id="Mobile" placeholder="Mobile" ng-model="far.mobile"> 
    </form> 

И Controler is

.controller('farform_contr',['$scope', '$http', function($scope, $http) { 
     $scope.register = function(isValid) { 
      if (isValid) { 
       $http({ 
         method : 'POST', 
         url  : 'submit.php', 
         dataType: 'json', 
         data : $scope.far, //forms user object 
         headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
       }). 
         success(function(data, status) { 
          console.log(far); 
          $scope.status = status; 
          $scope.data = data; 
         }) 
      }else{ 

        alert('Form is not valid'); 
      } 
     } 
    }]); 

У меня есть несколько других контроллеров в том же файле, которые работают хорошо.

submit.php является

<?php 
    $post_date = file_get_contents("php://input"); 
    $data = json_decode($post_date); 
    $name=$data['first_name']; 
    $email=$data['email']; 
    $mobile=$data['mobile']; 
    echo "<script>alert('$name')</script>"; 
    echo "<script>alert('$email')</script>"; 
    echo "<script>alert('$mobile')</script>"; 
?> 

Все Эхо возвращаются нуль я не знаю, где я буду неправильно.

+0

Когда вы используете службу '$ http', способ получения ответа - argument.data' в функции успеха. У вас есть какой-либо ответ в успехе? – Harish

ответ

1

Вероятно, нужно сериализации JSON перед декодированием его и указать тип содержимого в «приложения/JSON»

$http({ 
method : 'POST', 
url  : 'submit.php', 
dataType: 'json', 
data : JSON.stringify($scope.far), //forms user object 
headers : {'Content-Type': 'application/json'} 
}). 

ОБНОВЛЕНИЕ:

Initiliaze $scope.far в контроллере до $scope.register функции как :

$scope.far = {first_name : '', email:'', mobile:''}; 
+0

нет, это не работает @ Dev-One –

+0

Какая ошибка? Что-нибудь на консоли? – Sajal

+0

Я использовал предупреждение для '$ scope.far' после' if' в 'controller.js', его значение не задано вместо Object. @ Dev-One –

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