我想知道在插件类中然后在模板中对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之外,则仍然无法正常工作。
我忘记将请求的实际AJAX PHP添加到插件中。一旦进入,我会收到200响应,但是仍然有错误。我需要更改AJAX PHP中的函数以引用新函数的类,然后它开始工作。