How to Check Email Availability using jQuery and PHP/MySQLi

Getting Started

First, we need the jQuery library and also Bootstrap for a better design to our app. I've included these files in the downloadable of this tutorial but if you want, you can download them yourself using the links below: For Bootstrap For jQuery

Creating our Database

Next, we create the database that we are going to filter in this tutorial. I've included a SQL file in the downloadable of this tutorial. All you have to do is import the said file. If you have no idea on how to import, please visit my tutorial How import .sql file to restore MySQL database. You should be able to create a database named mydb.

Creating our Form

Next, we create our form or input text for the email. Also, I've displayed the available emails in our database for our reference. Create a new file, name it as index.php and paste the codes below.
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.         <meta charset="utf-8">
  5.         <title>How to Check Email Availability using jQuery and PHP/MySQLi</title>
  6.         <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
  7. </head>
  8. <body>
  9. <div class="container">
  10.         <h1 class="page-header text-center">Check Email Availability using jQuery</h1>
  11.         <div class="row">
  12.                 <div class="col-sm-4 col-sm-offset-2">
  13.                         <div class="form-group">
  14.                                 <label>Email</label>
  15.                                 <input type="text" class="form-control" name="email" id="email">
  16.                                 <span id="response" style="display:none;"></span>
  17.                         </div>
  18.                 </div>
  19.                 <div class="col-sm-4">
  20.                         <table class="table table-bordered">
  21.                                 <thead>
  22.                                         <th>Email</th>
  23.                                 </thead>
  24.                                 <tbody>
  25.                                         <?php
  26.                                                 //connection
  27.                                                 $conn = new mysqli('localhost', 'root', '', 'mydb');
  28.  
  29.                                                 $sql = "SELECT * FROM users";
  30.                                                 $query = $conn->query($sql);
  31.  
  32.                                                 while($row = $query->fetch_assoc()){
  33.                                                         echo "
  34.                                                                 <tr>
  35.                                                                         <td>".$row['email']."</td>
  36.                                                                 </tr>
  37.                                                         ";
  38.                                                 }
  39.                                         ?>
  40.                                 </tbody>
  41.                         </table>
  42.                 </div>
  43.         </div>
  44. </div>
  45. <script src="jquery.min.js"></script>
  46. <script type="text/javascript">
  47. $(document).ready(function(){
  48.         $('#email').keyup(function(e){
  49.                 e.preventDefault();
  50.                 var email = $(this).val();
  51.                 $.ajax({
  52.                         method: 'POST',
  53.                         url: 'check.php',
  54.                         data: {keyword: email},
  55.                         dataType: 'json',
  56.                         success: function(response){
  57.                                 $('#response').show().html(response);
  58.                         }
  59.                 });
  60.         });
  61. });
  62. </script>
  63. </body>
  64. </html>
In here, we have setup that upon user keyup, we generate a response.

Creating our Check Script

Lastly, we create the script that checks the availability of the inputted email. Create a new file, name it as check.php and paste the codes below.
  1. <?php
  2.         //initailize output
  3.         $output = '';
  4.  
  5.         //connection
  6.         $conn = new mysqli('localhost', 'root', '', 'mydb');
  7.  
  8.         //input post
  9.         $keyword = $_POST['keyword'];
  10.  
  11.         //server side email validation
  12.         if (!filter_var($keyword, FILTER_VALIDATE_EMAIL)) {
  13.           $output = 'Invalid email format';
  14.         }
  15.         else{
  16.                 //check if email exist
  17.                 $sql = "SELECT * FROM users WHERE email = '$keyword'";
  18.                 $query = $conn->query($sql);
  19.  
  20.                 if($query->num_rows > 0){
  21.                         $output = 'Email already taken';
  22.                 }
  23.                 else{
  24.                         $output = 'Email is free to use';
  25.                 }
  26.         }
  27.  
  28.         echo json_encode($output);
  29.  
  30. ?>
That ends this tutorial. Happy Coding :)

Add new comment