Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
77 views
in Technique[技术] by (71.8m points)

javascript - Wordpress ajax call in an admin menu page

I'm trying to use the data of an ajax call in my custom wordpress admin menu page.

The wp_localize_script is working fine:

wp_enqueue_script( 'ajax-function', plugin_dir_url( __FILE__ ) . 'JavaScript/ajax-function.js', array( 'jquery' ), $this->version,false );
wp_localize_script('ajax-function', 'WP_MY_AJAX',
     array(
       'security' => wp_create_nonce('wp-my-nonce'),
       'success' => 'this is a success',
       'error' => 'an error occurred'
     )
);

If I click the button, my ajax fires and it has a status of 200.

jQuery(document).ready(function() {
    let message = jQuery('.table-message');
    jQuery('#ajax-test').on('click', function () {
        let data = 111;

        jQuery.ajax({
            url: ajaxurl,
            type: 'POST',
            dataType: 'json',
            data: {
                action: 'get_edit_id',
                security: WP_MY_AJAX.security,
                edit_id: data
            },
            success: function ( response ) {
                //Do something
            },
            error: function ( error ) {
                jQuery('.error').remove();
                message.after('<div class="error"><p>' + WP_ESCORT_AJAX.error + '</p></div>');
            }
        });
    });

I end up in this function, which is located in my main plugin file.

function my_escort_get_edit_id() {
    check_ajax_referer('wp-escort-nonce', 'security');

   echo $_POST['edit_id']
   die();
}
add_action('wp_ajax_get_edit_id', 'my_escort_get_edit_id');
add_action('wp_ajax_nopriv_get_edit_id', 'my_escort_get_edit_id');

However my goal is to work with the $_POST['edit_id'] in my admin menu page function:

function my_custom_admin_menu() {
    add_menu_page(
        __( 'My Menu', 'my-menu' ),
        __( 'My Menu', 'my-menu' ),
        'edit_posts',
        'my-menu-slug',
        'my_admin_page_function',
        'dashicons-universal-access',
        3 ) ;
}
add_action( 'admin_menu', 'my_custom_admin_menu' );

function my_admin_page_function() {
    require_once __DIR__ . '/View/Admin/Partials/cover-menu-models.php';
    requireModel('all');

    $controller = new ModelController();

    $modelQuery = $controller->modelQuery('all');
    echo $controller->renderModelDataTables($modelQuery, 'all');
    
    //I need the id here

}

How can I achive this?

question from:https://stackoverflow.com/questions/65903109/wordpress-ajax-call-in-an-admin-menu-page

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...