Simple ajax call to dynamically load page content, solving issues of page caching etc.

HTML
  $AjaxUrlHtml = "var ajaxurl = '" . admin_url('admin-ajax.php') . "';";

  <script>
  $AjaxUrlHtml
  jQuery(document).ready(function(){

    var post_data = {
               'action': 'my_ajax_action_callback',   //The name of the ajax callback action in functions.php
               'my_value_1': 'AjaxTest'
    };

    jQuery.post(ajaxurl, post_data, function(response) {
      //----- CALLBACK SUCCESS - RESPONSE RECEVIED -----
      document.getElementById( 'ajax_output1' ).innerHTML = response;
    });

  });
  </script>
  <div id='ajax_output1'></div>
AJAX Callback
//***********************************
//***********************************
//********** AJAX CALLBACK **********
//***********************************
//***********************************
add_action ( 'wp_ajax_my_ajax_action_callback', 'my_ajax_action_callback' );        //For AJAX calls made for logged in users
add_action ( 'wp_ajax_nopriv_my_ajax_action_callback', 'my_ajax_action_callback' ); //For AJAX calls made from non logged in users
function my_ajax_action_callback()
{
  $my_value_1 = '';
  if (isset($_POST['my_value_1']))
    $my_value_1 = $_POST['my_value_1'];
  
  $ReturnHtml = "HELLO: " . $my_value_1;
  
  echo ($ReturnHtml);
  
  wp_die();     //Terminate immediately and return a proper response
}
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.

Comments

Your email address will not be published. Required fields are marked *