Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PHP and Ajax communication
#1
here is the complete code for AJAX php communication
index.php
PHP Code:
<!DOCTYPE html>
<
html>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<
head>

</
head>
<
body>

 
<div id="column-left">     
    
<form action="return.php" class="js-ajax-php-json" method="post" accept-charset="utf-8">
           <input type="text" name="favorite_beverage" value="" placeholder="Favorite restaurant" />
           <input type="text" name="favorite_restaurant" value="" placeholder="Favorite beverage" />
           <select name="gender">
                 <option value="male">Male</option>
                 <option value="female">Female</option>
           </select>
           <input type="submit" name="submit" value="Submit form"  />
      </form>
<
div class="the-return">
        [HTML is replaced when successful.]
</
div>
 
</div>
<
script type="text/javascript">
$(
"document").ready(function(){
  $(".js-ajax-php-json").submit(function(){
    var data = {
      "action""test"
    };
    data = $(this).serialize() + "&" + $.param(data);
    $.ajax({
      type"POST",
      dataType"json",
      url"response.php"//Relative or absolute path to response.php file
      datadata,
      success: function(data) {
        $(".the-return").html(
          "Favorite beverage: " data["favorite_beverage"] + "<br />Favorite restaurant: " data["favorite_restaurant"] + "<br />Gender: " data["gender"] + "<br />JSON: " data["json"]
        );

        //alert("Form submitted successfully.\nReturned json: " + data["json"]);
      }
    });
    return false;
  });
});
</
script>

</
body>
</
html

and here is response.php
PHP Code:
<?php
if (is_ajax()) {
  if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
    $action $_POST["action"];
    switch($action) { //Switch case for value of action
      case "test"test_function(); break;
    }
  }
}

//Function to check if the request is an AJAX request
function is_ajax() {
  return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}

function 
test_function(){
  $return $_POST;
  
  
//Do what you need to do with the info. The following are some examples.
  if ($return["favorite_beverage"] == ""){
    $return["favorite_beverage"] = "Coke";
  }
  $return["favorite_restaurant"] = "McDonald's";
  
  $return
["json"] = json_encode($return);
  echo json_encode($return);
}
?>

if you've noticed in the html code, for the for action return page is return php. If you set everything up it will not open another page. if it redirects to return.php then most likely you've didn't add ajax google api at the begining of the page [<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>]
You can send ajax from respond.php by adding $['something'] and reading it from ajax from with data['something']
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)