Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AJAX success result according to PHP if statement

Tags:

jquery

ajax

php

I have login form with submit button which calls Javascript function, in that function I call PHP file with AJAX. On PHP side I check if username, email and password are correct and then I return results to div with class Result. I need to return PHP check result and make further actions in javascript, my code:

PHP:

if (isset($_POST['username_or_email']) && isset($_POST['password'])) {
    $username_or_email = mysqli_real_escape_string($conn, $_POST['username_or_email']);
    $password_post = mysqli_real_escape_string($conn, $_POST['password']);

    $sql = "SELECT `password` FROM `users` WHERE `username` = '".$username_or_email."' OR `email` = '".$username_or_email."' LIMIT 1";
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_assoc($result);
    /* Check if username or email exists */
    if (mysqli_num_rows($result) > 0) {
        echo "valid_user";
    } else {
        echo "invalid_user";
    }
    /* Check if password is correct */
    if (password_verify($password_post, $row['password'])) {
        echo 'valid_pass';
    } else {
        echo 'invalid_pass';
    }
    $conn->close();
} 

JQUERY:

success: function (data) {
        if (data == "invalid_user") {
            $(".result").fadeIn(500).html("Incorrect username or email.");
        }
        if (data == "invalid_pass") {
            $(".result").fadeIn(500).html("Incorrect password.");
        }
        if (data == "valid_pass") {
           $(".result").fadeIn(500).html("Success, redirecting to account.");

           setTimeout(function() {
              document.location.href = 'nextpage.php';
           }, 2500);
        }
     }

So my questionis: how to make check on JQUERY side properly if I have several IF statements on PHP side. After user press login button I want to show that username or pass is correct/incorrect and which one is correct/incorrect, it is needed just for information purpose.

like image 222
LifeIsShort Avatar asked Dec 17 '25 13:12

LifeIsShort


1 Answers

The best way is to create an array of elements in your PHP file and store all the information you need. For example:

$info=array("user"=>"valid","password"=>"invalid");

Then, convert the array into a JSON string and simply echo it:

echo json_encode($info);

Once the data is retrieved, you can easily manipulate them by converting them into a javascript array of elements like this:

info=JSON.parse(data);

NOTE: PHP can only "communicate" with Javascript via Strings. JSON Strings is the most commonly used way of achieving such results, due to it's simplicity.

like image 194
George Avatar answered Dec 20 '25 06:12

George



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!