1

I am trying to learn how to get the content from a custom database table via wordpress ajax but don't know how to do this.

file name: process-order.php

   add_action( 'wp_ajax_get_drawing_size', 'get_drawing_size' );
   add_action( 'wp_ajax_nopriv_get_drawing_size', 'get_drawing_size' );
   function get_drawing_size() {

    global $wpdb;
    $drawing_id = $_POST['drawing_id'];
    $relation_result = $wpdb->get_results( "SELECT size.* FROM 
   `www_order_pro_relation` as relation RIGHT JOIN `www_order_pro_size` as 
    size on size.`id`=relation.`size_id` WHERE relation.`drawing_id` = 
 $drawing_id ");
    wp_send_json_success( array(
            'count' => $relation_result
        ));
     //$data = array( 'returnValue' => $relation_result);
    // echo "<pre>";
    // print_r($relation_result);
    // echo "</pre>";
            die();
            // return true;
// die("I am calling");
}

AJAX Code file -> size.php

<a href="#" onclick="call_ajax()">Click me</a>
<script type="text/javascript">
  function call_ajax(){
        jQuery.ajax({
        url : order_process_ajax_object.ajax_url,
        data : {action: "get_drawing_size","drawing_id":"drawing_id"},
        method: 'POST',
        success: function( data ) 
         {
          
        }
    }); 
}

I want the result here

<div class="row">
                    <div class="size-header">
                        <h3> Size </h3>
                    </div>
                         
                                <div class="col-md-2 size">
                                    
                                            <p> <?php //echo $print->title; ?></p>
                                            <h4> <?php //echo $curency ?> <?php //echo $print->price; ?> </h4>
                                            <div id="responsecontainer" align="center">
                                                **HERE**
                                            </div>
                                        
                                </div>

                    
                </div>

Anyone Plz help me

1 Answer 1

2

You have to bind callback function with the hooks used for ajax call.

Instead of this code

function order_process_ajax() {

   add_action( 'wp_ajax_get_drawing_size', 'get_drawing_size' );
   add_action( 'wp_ajax_nopriv_get_drawing_size', 'get_drawing_size' );
   function get_drawing_size() {

    global $wpdb;
    $drawing_id = $_POST['drawing_id'];
    $relation_result = $wpdb->get_results( "SELECT size.* FROM 
   `www_order_pro_relation` as relation RIGHT JOIN `www_order_pro_size` as 
    size on size.`id`=relation.`size_id` WHERE relation.`drawing_id` = 
 $drawing_id ");
    wp_send_json_success( array(
            'count' => $relation_result
        ));
     //$data = array( 'returnValue' => $relation_result);
    // echo "<pre>";
    // print_r($relation_result);
    // echo "</pre>";
            die();
            // return true;
// die("I am calling");
}

Replace this code and put in functions.php file of your active theme

add_action( 'wp_ajax_get_drawing_size', 'get_drawing_size' );
add_action( 'wp_ajax_nopriv_get_drawing_size', 'get_drawing_size' );
function get_drawing_size() {
    global $wpdb;
    $drawing_id = $_POST['drawing_id'];
    $relation_result = $wpdb->get_results( "SELECT size.* FROM 
   `www_order_pro_relation` as relation RIGHT JOIN `www_order_pro_size` as 
    size on size.`id`=relation.`size_id` WHERE relation.`drawing_id` = 
 $drawing_id ");
    wp_send_json_success( array(
            'count' => $relation_result
        ));
     //$data = array( 'returnValue' => $relation_result);
    // echo "<pre>";
    // print_r($relation_result);
    // echo "</pre>";
            die();
            // return true;
// die("I am calling");
}

Flow will be like this: When you click button, ajax call will trigger with action: "get_drawing_size","drawing_id":"drawing_id" data. Here action is important.

WordPress will check for the hook associated with the action name. In your case, it will check for the hook wp_ajax_get_drawing_size for logged in user and wp_ajax_nopriv_get_drawing_size for not logged in user.

Above hooks are not mentioned in your code. So please add those hook and link the callback function. I have attached the code above.

Sign up to request clarification or add additional context in comments.

2 Comments

i also add hook associated with the action name. nd data will be get
You have added in wrong manner. please check code snippet from my updated answer. hope that helps

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.