【发布时间】:2019-11-17 03:07:16
【问题描述】:
我想知道在插件类和模板中是否需要为 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