WordPress模板中的AJAX在WordPress插件类中不起作用

问题描述 投票:0回答:1

我想知道在插件类中然后在模板中对AJAX调用是否需要执行其他操作。

下面的代码在主题模板中可以正常工作。但是,我将其移动到插件中。这段代码当前在一个类中,并且出现400错误,并且不确定为什么。在一个地方而不是另一个地方工作似乎很奇怪。我一定缺少WordPress插件类与主题相关的东西。

任何帮助或建议都会很棒!谢谢。'''

    function echoPowerAJAX_javascript() {
        $adminAJAX =  admin_url('admin-ajax.php');  
    ?>
    <script type="text/javascript" language="JavaScript">
    jQuery(document).ready(function($) {    
        jQuery(function($) {
            $( "select[id=slctAddPowers]" )  
                .change(function( event ) {
                    var s = $(this).val();
                    var disc = $(this).prev().val();
                    var prevDiv = $(this).next('#PowerPreviewContainer');
                    if (s == '') {
                        //hide preview
                        $(prevDiv).html('<div class="alert alert-info">Select a Power from the drop down to display details here.</div>').fadeTo('fast');
                    } else {
                        $(prevDiv).html('<i class="fa fa-spinner fa-pulse fa-2x"></i>').fadeTo('fast');

                        //dPowerPreviewContainer.innerHTML = '<i class="fa fa-spinner fa-pulse fa-2x"></i>';
                        var ajaxurl = <?php echo json_encode($adminAJAX); ?>;
                        console.log('ajaxurl = ' + ajaxurl);                
                        var data = {
                                    action: 'echoPowerAJAX',
                                    powerID: s,
                                    pDetail: 3                          
                                   };
                        console.log("data = ");
                        console.log(data);              
        //            //WP ajax call
                        var tmessage = 'Adding some text here and whatever....';

                        $.post(ajaxurl, data)
                          .done(function( data, success ) {
                            //alert( "Data Loaded: " + data );
                            var pwrHTML = $.parseJSON(data);
                            $(prevDiv).html(pwrHTML).fadeTo('fast');
                          });
                    }
          });
      });
    });
    </script>

    echoPowerAJAX_javascript();
    ?>

'''

现在都位于ob_start()部分中。如果我将函数移到ob_start之外,则仍然无法正常工作。

php ajax wordpress class plugins
1个回答
0
投票

我忘记将请求的实际AJAX PHP添加到插件中。一旦进入,我会收到200响应,但是仍然有错误。我需要更改AJAX PHP中的函数以引用新函数的类,然后它开始工作。

© www.soinside.com 2019 - 2024. All rights reserved.