在ajax上成功加载php函数

时间:2017-07-19 12:24:57

标签: php jquery ajax wordpress

如果ajax请求成功,我正在寻找一种调用php函数的方法。

基本设置代码:

wp_register_script( 'theme-follow-me-ajax', ... );   

    wp_localize_script('theme-follow-me-ajax', 'ajax_setting', array(
        'ajax_url'              => admin_url('admin-ajax.php'),
        'ajax_follow_error'     => $this->km_follow_me_error(),
        ....
    ));

    wp_enqueue_script( 'theme-follow-me-ajax' );    

显示错误的内容,应该可以自定义

 public function km_follow_me_error() {

    $content = esc_html__( 'An error happened. We\'re unable to complete your request.', 'theme' );

    echo apply_filters( 'theme_hook_follow_me_error_message', $content );

}

Ajax电话:

$.ajax( {
        url : ajax_setting.ajax_url,
        type : 'post', 
        data: {  
            action                      : 'km_ajax_follow_me',
            security                    : ajax_setting.ajax_nonce,
            ... 
        },  
        success: function( data ) {         
            $('.km-follow-me').html( ajax_setting.ajax_follow_success ).hide().fadeIn( 'slow' );            
            //console.log( ajax_setting.ajax_follow_success );
        },  
    } ) 

WP wp_ajax_功能

public function addon_ajax_follow_me() {

        check_ajax_referer( 'km-ajax-create-nonce', 'security' );   

        ... update user meta ...

        wp_die();   

    }

    $this->loader->add_action( 'wp_ajax_km_ajax_follow_me', $plugin_public, 'addon_ajax_follow_me' );

在控制台中,我收到null消息,因此它不会抓取km_follow_me_error函数。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

你做错了。无法通过Javascript以您尝试的方式调用/访问PHP函数。您有两个选项可以在AJAX成功时调用该函数。

  1. 在WordPress中创建/注册另一个AJAX函数,可能命名为ajax_follow_success,并在之前的AJAX调用中成功调用它。

  2. 在您的第一个功能WordPress AJAX功能中识别,即addon_ajax_follow_me是否成功,并在那里调用下一个功能。