chi
chi

Reputation: 357

ajax call and validate email in php

I'm trying to "transform" a form action into an ajax call. My form:

 <!-- <form method="POST" onSubmit="return doSubmitLogic()" action="action.scripts.php" >
<input type="hidden" name="actiune" value="login" />
<div>
    <label> Email </label>
    <input type="email" name = "email" id="email" /><span id="emailErr"></span >
</div>
<div>
    <label> Password </label>
    <input type="password" name = "password" id="password" /> <span  id="passErr"></span >
</div>

<div>
    <input id ="submitBtn" type="submit" name="button" value="Send"/>
</div>

And what I tried to do with my ajax:

$(document).ready(function(){
$("#submitBtn").click(function(e){

    e.preventDefault();  

    $.ajax({
        type: "POST",
        url: "functions.php",
        data: {
               Email: $("#email").val(),
               Password: $("#password").val(),
              },

        success: function(result){   
            alert(result);
        },
        error: function (error){
            alert("Error");
        }

   });
 });
 });

Also my piece of code "functions.php" is composed by many checking if the action has a specific value and if so to do something.So:

  if ($_POST['actiune']==="login") {
    $email = $_POST['email'];
    $password = $_POST['password'];
    $encript_pass = md5($password);

    $query = "select * from user where email='$email' and password='$encript_pass'"; 
    $result = mysql_query($query) or die ("Error in query: $query " . mysql_error()); 
    $row = mysql_fetch_array($result); 



    if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
        echo("$email is a valid email address");
    } else {
        echo("$email is not a valid email address");
    }   
 }

when I run it it give me an alert saying error. Any syggestions?

Upvotes: 1

Views: 941

Answers (2)

jeanj
jeanj

Reputation: 2166

You need to pass actiune with your datas too.

 data: {
      email: $("#email").val(),
      password: $("#password").val(),
      actiune: 'login'
 },

I also removed the uppercases from the field you pass since you require password and email in your php not Password and Email

Upvotes: 1

Tiberiu Petcu
Tiberiu Petcu

Reputation: 852

Just replace your code with this, notice the "actiune" under the Email & Password

    $(document).ready(function(){
$("#submitBtn").click(function(e){

    e.preventDefault();  

    $.ajax({
        type: "POST",
        url: "functions.php",
        data: {
               Email: $("#email").val(),
               Password: $("#password").val(),
               actiune: $('input[name="actiune"]').val()
              },

        success: function(result){   
            alert(result);
        },
        error: function (error){
            alert("Error");
        }

   });
 });
 });

Upvotes: 2

Related Questions