i cant send a form data with ajax to php. It always refresh the page. Im using bootstrap modal to register form and i want to display error message (if have) on the top of form. Always refresh the page and if i again click to reg button to open the modal i see the error message. How i can do it without refresh the page? Any idea how can i do it?
form:
<?php echo display_error(); ?>
                                
<form  id="regform" class="form-signin" action="#" method="post">
                                
                                
<input type="text" id="username" class="form-control" placeholder="username" name="username" required autofocus>
                                
 <input type="email" id="email" class="form-control" placeholder="email" name="email"required autofocus>
                                
<input type="password" id="pass1" class="form-control"  placeholder="password" name="password_1" required>
                            
<input type="password" id="pass2" class="form-control" placeholder="password again" name="password_2" required>
                                </br>
<button class="btn btn-lg btn-primary btn-block" type="submit"  name="register_btn">Register</button>
</form> 
js ajax
$('#register_btn').click(function(){
    var data = {};
    data.username = $('#username').val();
    data.email = $('#email').val();
    data.password_1 = $('#pass1').val();
    data.password_2 = $('#pass2').val();
    $.ajax({
        type: "POST",
        url: "functions.php",
        data: data,
        cache: false,
        success: function (response) {
        }
    });
        return false;
});
});
functions.php
include 'db_config.php';
    session_start();
// connect to database
// variable declaration
$username = "";
$email    = "";
$errors   = array(); 
// call the register() function if register_btn is clicked
if (isset($_POST['register_btn'])) {
    register();
}
// REGISTER USER
function register(){
    global $db, $errors;
// receive all input values from the form
$username    =  e($_POST['username']);
$email       =  e($_POST['email']);
$password_1  =  e($_POST['password_1']);
$password_2  =  e($_POST['password_2']);
// form validation: ensure that the form is correctly filled
if (empty($username)) { 
    array_push($errors, "Username is required"); 
}
if (empty($email)) { 
    array_push($errors, "Email is required"); 
}
if (empty($password_1)) { 
    array_push($errors, "Password is required"); 
}
if ($password_1 != $password_2) {
    array_push($errors, "The two passwords do not match");
}
// register user if there are no errors in the form
if (count($errors) == 0) {
    $password = md5($password_1);//encrypt the password before saving in the database
    if (isset($_POST['user_type'])) {
        $user_type = e($_POST['user_type']);
        $query = "INSERT INTO users (username, email, user_type, password) 
                  VALUES('$username', '$email', '$user_type', '$password')";
        mysqli_query($db, $query);
        $_SESSION['success']  = "New user successfully created!!";
        header('location: home.php');
    }else{
        $query = "INSERT INTO users (username, email, user_type, password) 
                  VALUES('$username', '$email', 'user', '$password')";
        mysqli_query($db, $query);
        // get id of the created user
        $logged_in_user_id = mysqli_insert_id($db);
        $_SESSION['user'] = getUserById($logged_in_user_id); // put logged in user in session
        $_SESSION['success']  = "You are now logged in";
        header('location: index.php');              
    }
}
}
function display_error() {
    global $errors;
if (count($errors) > 0){
    echo '<div class="error">';
        foreach ($errors as $error){
            echo $error .'<br>';
        }
    echo '</div>';
}
}
 
    