Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ajax成功加载php函数_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

ajax成功加载php函数

ajax成功加载php函数,php,jquery,ajax,wordpress,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_e

我正在寻找一种在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\u ajax\uwp
函数

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\u follow\u me\u error
函数


有更好的方法吗?

你做得不对。无法按照您尝试的方式从Javascript调用/访问PHP函数。在AJAX成功时,有两个选项可以调用该函数

  • 在WordPress中创建/注册另一个AJAX函数,可能命名为
    AJAX\u follow\u success
    ,并在上一个AJAX调用的成功中调用它

  • 在第一个函数中确定WordPress AJAX函数,即
    addon\u AJAX\u follow\u me
    是成功还是失败,并在那里调用下一个函数


  • 您的第一个ajax调用实际上是“调用一个PHP函数”。这是正确的方法,无法直接从脚本执行,因为PHP在服务器上运行,JS在客户机上运行,并且在页面生命周期的不同时间运行。因此,要调用另一个PHP函数,您需要重复相同的模式,即对不同URL的另一个ajax调用,该调用将运行一些PHP来调用您需要的函数,并将结果返回到浏览器。您可以创建一个示例吗?或者知道更详细地解释这一点的教程吗?大多数关于wpajax的教程都没有涉及这个主题(ajax中的ajax),没有什么内容。在第一个ajax调用的success函数中,使用相同的语法进行另一个ajax调用。抱歉,我认为这很明显,您已经知道如何进行ajax调用。顺便说一句,这并不是wordpress特有的。如何在php函数中检查它是成功还是失败?你能举个例子吗?@kiarashi这完全取决于你的逻辑。那个AJAX函数叫什么?这是否执行得很完美,并且您得到了预期的结果/值?如果是,那就是成功,否则就不是。