AJAX在插件php文件中调用

时间:2017-09-13 作者:Vishit

我正在开发一个名为Ajaxso的插件,我在插件中做了一些事情,并将js列在js文件的主文件中,在数据部分添加操作,然后将该数据称为另一个。php文件add same action name函数add add\\u action,但在调用Ajax之后,没有定义错误add\\u action,因此请建议我如何在插件中调用该Ajax。

===js file ==
var ajaxurl = myScript.ajaxurl; (Custom File Ajax URL)
jQuery("#idForm").on(\'submit\', function(){
    var searchIDs = jQuery("#idForm input:checkbox:checked").map(function(){            
        var value = jQuery(this).val();
        var name = jQuery(this).attr(\'name\');
        var rel = jQuery(this).attr(\'rel\');
        var stuff = {\'name\':name,\'value\':value,\'rel\':rel,};
        return stuff;
    }).get();
    var tmp = searchIDs;
        jQuery.ajax({
            type: "POST",
        url: ajaxurl, //Relative or absolute path to response.php file
            data: {
                action     : \'my_ajax_action\', // load function hooked to: "wp_ajax_*" action hook
                search_val : JSON.stringify(searchIDs),           // PHP: $_POST[\'first_name\']
                //last_name  : \'Cena\',           // PHP: $_POST[\'last_name\']
            },

            //data: {search_val:JSON.stringify(searchIDs)},
            success: function(data){
                alert(data);
            }
        });
});
==========AJax Own File========
add_action( \'wp_ajax_my_ajax_action\', \'my_ajax_action_callback\' );
function my_ajax_action_callback(){
//Code Here
}

1 个回复
SO网友:Milan Petrovic

您不应该使用自己的AJAX处理程序PHP文件。您的问题是,您的文件调用了add\\u action()函数,而该函数是WordPress的一部分,您的文件没有加载到WordPress上下文中,因此该函数没有加载。您需要先在文件中加载WP。

但是,这不是一个好办法。WordPress已经有一个专用的AJAX处理程序文件,您应该使用它,而不是您自己的文件,这可能会带来安全风险。

这是一篇关于在插件中使用AJAX的好文章,它位于官方WordPress Codex上:AJAX in Plugins.

结束