【问题标题】:ajax get data from custom table Wordpressajax 从自定义表格 Wordpress 中获取数据
【发布时间】:2021-04-24 20:51:59
【问题描述】:

我正在尝试学习如何通过 wordpress ajax 从自定义数据库表中获取内容,但不知道该怎么做。

文件名: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 代码文件 -> 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 ) 
         {
          
        }
    }); 
}

我想要结果

<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>

请大家帮帮我

【问题讨论】:

    标签: php jquery ajax database wordpress


    【解决方案1】:

    您必须将回调函数与用于 ajax 调用的钩子绑定。

    代替这段代码

    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");
    }
    

    替换此代码并放入您的活动主题的functions.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");
    }
    

    流程将是这样的: 当您单击按钮时,将使用action: "get_drawing_size","drawing_id":"drawing_id" 数据触发 ajax 调用。这里行动很重要。

    WordPress 将检查与 action 名称关联的钩子。在您的情况下,它将检查钩子 wp_ajax_get_drawing_size 用于登录用户和 wp_ajax_nopriv_get_drawing_size 用于未登录用户。

    您的代码中没有提到上述钩子。 所以请添加那些钩子并链接回调函数。我附上了上面的代码。

    【讨论】:

    • 我还添加了与动作名称相关的钩子。 nd 数据将被获取
    • 您添加的方式有误。请从我更新的答案中检查代码 sn-p。希望有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2013-07-25
    • 2016-03-03
    相关资源
    最近更新 更多