How to check whether input age is eligible for voting or not using PHP ajax?

 Hi There,


 

In this tutorial you will learn how to check whether input age is eligible for voting or not using PHP ajax.

Input age of the person and we have to write a function to validate whether person is eligible for voting or not in php and ajax? 

File Structure:


 




Step1: Create index.html and copy/paste below code in index.html

index.html


<!DOCTYPE html>
<html lang="en">
<head>
  <title>www.sleepycoder.com | Enter your Date of Birth to check your vote eligiblity</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css
/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
</script>
  <script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/jquery.
validate.min.js"></script>
  <script src="ajax.js" type="text/javascript"></script>
     <style type="text/css">
        .label {
        width100px;
        text-alignright;
        floatleft;
        padding-right10px;
        }
        #submit_form label.error.output {
        color#FB3A3A;
        font-family:"Segoe UI";
        font-size:13px;
        margin-top:-10px;
        }
     </style>

</head>
<body>

<div class="container">
<div class="row">
    <div class="col-md-12">
  <h2>Enter your Date of Birth to check your Vote Eligibility</h2><br>
  <form action="#" id="submit_form" method="POST"  
enctype="application/x-www-form-urlencoded">
    <div class="form-group">
      <label for="dob">Enter your DOB:</label>
      <input type="date" class="form-control" id="dob"  
placeholder="Enter Date of birth" name="dob">
    </div>
    
    <input type="submit" class="btn btn-primary" name="submit_btn" value="Submit">
  </form>
  <div id="loading" style="display: none;">Calculating...</div>
  <br>
  <div class="alert alert-primary" role="alert" id="message" style="display: none;">
    
  </div>
</div>
</div>
</div>
</body>
</html>


Step2: Create ajax.js and copy/paste below script in ajax.js

ajax.js

 

$("#loading").hide();
        // When the browser is ready...
        $(document).ready(function(){
        // Setup form validation on the #signup element
        $("#submit_form").validate({
        
         // Specify the validation rules
         rules: {
          dob: {
           required: true,
           date: true
          }
        
         },
        
         // Specify the validation error messages
         messages: {
        
          dob: {
           required: "Please select your date of birth",
           date: "Invalid date"
          }
         },
        
         submitHandler: function (form) {   
          $("#loading").show(); 
        $.ajax({
           type: 'POST',
           dataType:'JSON',    
           url: 'calculate-age.php',    
           data: $("#submit_form").serialize(),
           success: function (json_data) {          
            var msg = json_data.msg;
            var flag = json_data.flag;     
            if (flag == 1) {
             $("#loading").hide();
             $("#message").html(msg).show();
             $("#submit_form").trigger('reset');
            } else {
             $("#message").html(msg).show();
             $("#submit_form").trigger('reset');
        
            }
           }
          });
         }
        });
        
        }); 
 
 

Step3:Create calculate-age.php and copy/paste below code in calculate-age.php

calculate-age.php


<?php
    $dateOfBirth = $_POST['dob'];
    $today = date("Y-m-d");
    $diff = date_diff(date_create($dateOfBirth), date_create($today));
    if($diff->format('%y')>= 18){
        header('Content-Type: application/json');
        echo json_encode(array('flag'=>1'msg'=> 
'You are eligible for vote. Your Age is: '.$diff->format('%y').' Years, 
'.$diff->format('%m').' months ,'.$diff->format('%d').' days'));
        exit;
    }else{
        header('Content-Type: application/json');
        echo json_encode(array('flag'=>1'msg'=>'You are not eligible for vote. 
Your Age is: '.$diff->format('%y').' Years, '.$diff->format('%m').' months ,
'.$diff->format('%d').' days'));
        exit;
    }
?>


Happy coding!

GitHub Link: Download Sourcecode

Comments