Simple Inserting And Retrieving Data Without Page Refresh Using Ajax

In this tutorial we will create a Simple Inserting And Retrieving Data Without Page Refresh Using Ajax. Ajax is a new technique for creating better, faster, and more interactive web applications. It is widely used by other well known websites like facebook. Let see how Ajax works with PHP in an interactive kind of application. Let's start coding. Creating A Database To create a database open any kind of database base server that you have(wamp, xamp, etc..). Then create database and name it 'db_post'. After that click SQL then copy/paste the code below.
  1. CREATE TABLE `post` (
  2.   `post_id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `post` text NOT NULL,
  4.   `name` varchar(30) NOT NULL
  5.   PRIMARY KEY (`post_id`)
Creating The Connection To create the connection copy/paste the code below and name it 'connection.php'
  1. <?php
  2.         $conn = new mysqli("localhost", "root", "", "db_post") or die(mysqli_error());
  3.         if(!$conn){
  4.                 die("Connection Failed!");
  5.         }
  6. ?>
Creating The Mark Up To create the form, copy/paste the code below then name it 'index.php'
  1. <!DOCTYPE html>
  2.        
  3. <html lang = "en">
  4.         <head>
  5.                 <meta charset = "UTF-8" name = "viewport" content = "width=device-width, initial-scale=1"/>
  6.                 <link rel = "stylesheet" type = "text/css" href = "css/bootstrap.css"/>
  7.         </head>
  8. <body>
  9.         <nav class = "navbar navbar-default">
  10.                 <div class = "container-fluic">
  11.                         <a href = "https://sourcecodester.com" class = "navbar-brand">Sourcecodester</a>
  12.                 </div>
  13.         </nav>
  14.         <div class = "row">
  15.                 <div class = "col-md-3"></div>
  16.                 <div class = "col-md-6 well">
  17.                         <h3 class = "text-primary">Simple Inserting And Retrieving Data Without Page Refresh Using Ajax</h3>
  18.                         <hr style = "border-top:1px dotted #000;"/>
  19.                         <button class = "btn  btn-primary" id = "btn_post"><span class = "glyphicon glyphicon-plus"></span> Add Post</button>
  20.                         <button style = "display:none;" class = "btn  btn-danger" id = "btn_close"><span class = "glyphicon glyphicon-remove"></span> Close</button>
  21.                         <br /><br />
  22.                         <div  style = "display:none;" id = "post_form" class = "col-md-12">
  23.                                 <form> 
  24.                                         <input type = "text" class = "form-control" placeholder = "Name" style = "width:50%;" id = "name"/>
  25.                                         <br />
  26.                                         <textarea style = "resize:none;" id = "post" class = "form-control" placeholder = "Enter your post here..."></textarea>
  27.                                         <br />
  28.                                         <button type = "button" id = "add_post">Post</button>
  29.                                 </form>
  30.                                 <br /><br />
  31.                         </div>
  32.                         <div id = "result">    
  33.        
  34.                         </div> 
  35.                 </div>
  36.         </div>
  37. </body>
  38. <script src = "js/jquery-3.1.1.js"></script>   
  39. <script type = "text/javascript">
  40.         $(document).ready(function(){
  41.         displayResult();
  42.         /*      ADDING POST     */     
  43.                 $('#btn_post').on('click', function(){
  44.                         $('#post_form').slideDown();
  45.                         $('#btn_close').show();
  46.                         $(this).hide();
  47.                         $('#post').val('');
  48.                 });
  49.                
  50.                 $('#btn_close').on('click', function(){
  51.                         $('#post_form').slideUp();
  52.                         $('#btn_post').show();
  53.                         $(this).hide();
  54.                 });
  55.                
  56.                 $('#add_post').on('click', function(){
  57.                         if($('#post').val() == "" || $('#name').val() == ""){
  58.                                 alert('Please enter something first');
  59.                         }else{
  60.                                 $('#post_form').slideUp();
  61.                                 $('#btn_post').show();
  62.                                 $('#btn_close').hide();
  63.                                 $post = $('#post').val();
  64.                                 $name = $('#name').val();
  65.                                 $.ajax({
  66.                                         type: "POST",
  67.                                         url: "add_post.php",
  68.                                         data: {
  69.                                                 post: $post,
  70.                                                 name: $name
  71.                                         },
  72.                                         success: function(){
  73.                                                 $('#name').val('');
  74.                                                 displayResult();
  75.                                         }
  76.                                 });
  77.                         }      
  78.                 });
  79.         /*****  *****/
  80.         });
  81.        
  82.         function displayResult(){
  83.                 $.ajax({
  84.                         url: 'add_post.php',
  85.                         type: 'POST',
  86.                         async: false,
  87.                         data:{
  88.                                 res: 1
  89.                         },
  90.                         success: function(response){
  91.                                 $('#result').html(response);
  92.                         }
  93.                 });
  94.         }
  95.        
  96. </script>
  97. </html>
The code above will send a request to PHP server when the button is clicked. The $('add_post') will store and send the data to the php script, and save the data to the database server at the same time . The displayResult() function will call back the php request and then display the data from the database server. PHP Query To make the query works, copy/paste the code below and name it 'add_post.php'
  1. <?php
  2.         require_once 'connection.php';
  3.         if(ISSET($_POST['name'])){             
  4.                 $post = addslashes($_POST['post']);
  5.                 $name = $_POST['name'];
  6.                 $conn->query("INSERT INTO `post` (`post`, `name`) VALUES('$post', '$name')") or die(mysqli_error());
  7.         }
  8. ?>             
  9. <?php
  10.         if(ISSET($_POST['res'])){
  11.                 $q_post = $conn->query("SELECT * FROM `post` ORDER BY `post_id` ASC") or die(mysqli_error());
  12.                 while($f_post  = $q_post->fetch_array()){
  13. ?>     
  14.                 <div class = "col-md-12 content" style = "word-wrap:break-word; background-color:#fff; padding:20px;">
  15. <?php echo '<h4 class = "text-danger">'.$f_post['name'].'</h4>';?>
  16. <hr style = "border-top:1px solid #000;"/>
  17. <?php echo $f_post['post']?>
  18.                 </div>
  19.                 <br style = "clear:both;"/>
  20.                 <br />
  21. <?php
  22.                 }
  23.         }      
  24. ?>
There you have it we create a simple Ajax application with PHP. I hope that this tutorial help to your projects. For more updates and tutorials just kindly visit this site, don't forget to LIKE and SHARE. Enjoy Coding!!
Tags

Add new comment