jQuery Tutorial: Submit a Form and Post Data Using jQuery and AJAX

JMS061

DISCLAIMER: This post may contain “affiliate” links to products and services I recommend. I’ll receive a small commission if you decide to purchase one of these products or services. I only recommend products I genuinely believe will help you in running your freelance business.

In this jQuery tutorial, you’ll learn how to submit a form, post the data and format the response using jQuery and AJAX:

https://www.youtube.com/watch?v=-nkud6TwXBI

Here’s the code I used in the video:

Index.php

<!DOCTYPE html>
<html>
  <head>
    <title>Get Data From a MySQL Database Using jQuery and PHP</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>
      $(document).ready(function(){
        // Set form variable
        var form = $('#search_form');
        
        // Hijack form submit
        form.submit(function(event){
          // Set username variable
          var username = $('#username').val(); 
          
          // Check if username value set
          if ( $.trim(username) != '' ) {
            // Process AJAX request
            $.post('process.php', {name: username}, function(data){
              // Append data into #results div
              $('#results').html(data);
            });
          }
          
          // Prevent default form action
          event.preventDefault();
        });
      });
    </script>
  </head>
  <body>
    <span>Search by name: </span>
    <form method="POST" action="process.php" id="search_form">
      <input type="text" id="username" name="name">
      <input type="submit" id="submit" value="Search">
    </form>
    <div id="results"></div>
  </body>
</html>

Process.php

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

// Check if $_POST is set
if ( empty ( $_POST['name'] ) ) {
  echo "Yo! Something ain't legit!";
  
  exit;
}
// Connec to MySQL
$mysqli = new mysqli('localhost', 'YOUR_USERNAME', 'YOUR_PASSWORD', 'YOUR_DATABASE');

// Check connection
if ( mysqli_connect_errno() ) {
  echo "Can't connect: " . mysqli_connect_error();
}

$stmt = $mysqli->prepare("SELECT * FROM ajaxget WHERE name = ?");
$stmt->bind_param("s", $_POST['name']);
$stmt->execute();

$result = $stmt->get_result();

while( $row = $result->fetch_object() ) {
  $rows[] = $row;
}
?>
<ul>
  <?php foreach ( $rows as $row ) : ?>
  <li><?php echo $row->name; ?>: <?php echo $row->favorite_food; ?></li>
  <?php endforeach; ?>
</ul>

If you enjoyed this tutorial and want to keep learning, check out my free tutorial site here: https://johnsfreetuts.com

You might also like

Do you want more freelance clients?

I’ll show you what I learned over the last 15 years to grind out (from absolute scratch) a backlog of new clients wanting to hire you. Who your best client prospect are, what services you should be offering them, where to find them and more. Just enter your email address in the box below and let’s get started:

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on reddit
Reddit
Share on pinterest
Pinterest
John Morris

JOHN MORRIS

I’m a 15-year veteran of freelance web development. I’ve worked with bestselling authors and average Joe’s next door. These days, I focus on helping other freelancers build their freelance business and their lifestyles.

This Post Has 10 Comments

  1. Working code! thanks. i was stuck in the same from a day. working fine for my login form now.

  2. Nice BUT it only works for cases that exactly match the value inputted. If the name isn’t in the database you get an error.

    1. Sure, you can just change your MySQL query statement for that. This is highlighting more the AJAX request and how to handle all that than the SQL part.

  3. This code is a savior man !!!

  4. thanks 🙂

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Do you want more freelance clients?

Enter your email below to get started building your system for consistently bringing in new freelance clients:

WHAT OTHERS ARE SAYING

Sukh Plaha

John is a fantastic and patient tutor, who is not just able to share knowledge and communicate it very effectively – but able to support one in applying it. However, I believe that John has a very rare ability to go further than just imparting knowledge and showing one how to apply it. He is able to innately provoke one’s curiosity when explaining and demonstrating concepts, to the extent that one can explore and unravel their own learning journey. Thanks very much John!

Xan Barksdale

Xan Barksdale

Very professional worker who is extremely knowledgable in WordPress and Wishlist Member. I would definitely hire again.

Lewis Howes

John is amazing at building membership sites. He converted one of my sites over from it’s existing (hardly working) platform over to the clean and simple to use WishList membership platform. I highly recommend using John and WishList for any of your membership site needs.

Ray Edwards

I recommend John every chance I get. If every person I worked with were as committed to excellence, punctuality, value, and unquestionable integrity… the world would be a better place. Highest recommendation.

Thabo Motsoahae

John is one of the best instructors I have come across, I learned a lot from his online tutorials.

Bradley Smith

John and I have worked together on numerous projects. John is very quick and efficient and was a pleasure to work with.

Lori Grant

John did an outstanding job on my project. I highly recommend him and look forward to working with him on future projects.

Close Menu