0

I am a new Angularjs user.I am facing a problem,when i submit a signup form,I have applied validation using AngularJs. At the same time if all the input fields are valid then i have send an $http Ajax call to check the email address,already exist or not.The issue is my php file did not receive email data.

$http({
         method  : 'POST',
         async: false,
         url: 'http://localhost/angular/signup/emailcheck.php',
         data: { email: $scope.user.email },  // 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) 
      {
          $scope.info = data;
          if($scope.userForm.$valid && $scope.info === '0') {
                alert('our form is amazing' + $scope.info);
          }
          else{
                  alert('Already exist');
              }
      }).error(function(response,status)
      {
          console.log('ERROR HERE'+ status);
      });

My Php file code:

$email = $_POST['email'];
$sql = "SELECT * FROM user where username = '".$email."'";
$result = mysql_query($sql);
//fetch tha data from the database 
while ($row = mysql_fetch_array($result)) {
....
....
....
....
....
}

I have checked and found that php file did not receive email value at all.

rajausman haider
  • 570
  • 2
  • 10
  • 20

5 Answers5

1
$http({
     method  : 'POST',
     async: false,
     url: 'http://localhost/angular/signup/emailcheck.php',
     data : $.param($scope.user),  // this will definitely wor
     headers : { 'Content-Type': 'application/x-www-form-urlencoded' }  // set the headers so angular passing info as form data (not request payload)
  })
  .success(function(data) 
  {
      $scope.info = data;
      if($scope.userForm.$valid && $scope.info === '0') {
            alert('our form is amazing' + $scope.info);
      }
      else{
              alert('Already exist');
          }
  }).error(function(response,status)
  {
      console.log('ERROR HERE'+ status);
  });
1

Try removing http://localhost from url and then see it may be CORS.

Rahul
  • 334
  • 1
  • 8
0

Just a guess: your url is pointing to localhost but has no port number, this is unusual, maybe you forgot it?

0
data: $.param({
    email:$scope.user.email
})

Or this way: (modify the php)

Angular HTTP post to PHP and undefined

Community
  • 1
  • 1
ronald8192
  • 5,003
  • 2
  • 14
  • 23
0

I have just found that in php file,

$_POST or $_GET will not work, to receive data. Use the following:

$data = file_get_contents("php://input");
$objData = json_decode($data);
$email = $objData->email;

In my case it works.

rajausman haider
  • 570
  • 2
  • 10
  • 20