首页 > 解决方案 > 如何在 Wordpress 中获取 Ajax 数据

问题描述

我在 wordpress 管理页面中尝试了一个自定义 ajax 函数来从 ajax 方法获取数据,但没有发生任何事情。

我该如何解决?

代码 javascript 和 ajax:

function GetName() {
        var baseurl = window.location.protocol + '//' + window.location.hostname + window.location.pathname;
        var geturl = baseurl + '?page=get-name-member-category';

        jQuery.ajax({
            type: "get",
            dataType: "json",
            url: geturl,
            success: function(msg){
                console.log(msg);
            }
        });
    }

后端数据 PHP 响应代码:

public function getSelectedName()
    {
        global $wpdb;
        $table = $wpdb->prefix .'admin_custom_users';
        $sql = "SELECT name FROM $table WHERE member_category = 'Ordinary-Members'";
        $data =  $wpdb->get_results($sql);
       echo json_encode($data);
    }

标签: phpjqueryjsonajaxwordpress

解决方案


您可以通过在自定义主题或插件中添加添加操作挂钩来在 wordpress 中发送 ajax 调用。下面我给出php和js代码

<?php
    add_action('wp_ajax_myAjaxFun', 'myAjaxFun');
    add_action('wp_ajax_nopriv_myAjaxFun', 'myAjaxFun');

    function myAjaxFun(){
        global $wpdb;
        $table = $wpdb->prefix .'admin_custom_users';
        $sql = "SELECT name FROM $table WHERE member_category = 'Ordinary-Members'";
        $data =  $wpdb->get_results($sql);
        echo json_encode($data);
        die();  
    }
?>

您的 ajax 调用应采用以下格式

$.ajax({
    url : baseUrl+"/wp-admin/admin-ajax.php", //baseUrl is wordpress root url 
    type : 'post',
    dataType: "json",
    data : {
    action:'myAjaxFun',//this is must
    data1:'test',
    data2:'sample',
    //.....
    },
    success : function( response ) {
        console.log(response);
    }
});

推荐阅读