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.

7
  • check console log if you are getting some error? Commented Dec 9, 2015 at 12:12
  • Are you getting any errors in browser's console ? Commented Dec 9, 2015 at 12:12
  • No, there is not any error at console.i have checked it. Commented Dec 9, 2015 at 12:14
  • alert $scope.user.email before ajax request and see are you getting email? Commented Dec 9, 2015 at 12:21
  • Yes i have checked it.It shows the correct value. Commented Dec 9, 2015 at 12:28

5 Answers 5

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);
  });
Sign up to request clarification or add additional context in comments.

Comments

1

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

1 Comment

Yes, it sounds liek CORS. OP should get a browser plugin to allow it (and only use that browser for development)
0

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

1 Comment

What's unusual about it? It will default to port 80 and his (Apache?) server will handle it & run his PHP script.
0
data: $.param({
    email:$scope.user.email
})

Or this way: (modify the php)

Angular HTTP post to PHP and undefined

Comments

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.