【发布时间】:2017-01-01 21:08:43
【问题描述】:
我正在尝试利用 WordPress 的 admin-ajax 功能为插件构建动态管理面板选项集。从本质上讲,一旦从下拉菜单(选择/选项菜单)中选择了一个选项,PHP 函数就会排序并显示更多位于其上方下拉菜单下的下拉菜单。我从一个简单的返回开始,我希望以后可以使用它,但我似乎无法在不遇到unidentified 问题的情况下打印出文本。
我设置的 AJAX 显示 200 状态,但响应从未建立,我的结果是 0。代码如下:
JS/jQuery 内置于 PHP 函数 ajax-action()
$ = jQuery;
$('#platform').change(function(e) {
var data = {
action: 'action_cb',
type: 'POST',
dataType: 'json',
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(errorThrown);
},
success: function(response) {
$('#user_id').val(response);
}
};
$.ajax(ajaxurl, data, function(data) {
$('#user_id').val(data);
});
e.preventDefault();
});
PHP 函数和添加操作
add_action('wp_ajax_action_cb','action_cb');
add_action('admin_footer','ajax_action');
函数 action_cb() { $platform = 'test';回声 json_encode($platform); wp_die(); };
我的问题是:我该如何解决这个问题并防止它继续发生?我想返回实际结果而不是0。
【问题讨论】:
-
我不认为这是导致问题的原因,但您的 action_cb 函数中有错字。它应该是 wp_die() 而不是 p_die()。我会尽快看看这个。
-
尝试在您的
$.ajax语句之前放置一个$.support.cors = true;,因为这可能是由于 CORS 问题 -
@lassemt 是的,我最初尝试过 die() 但在发布此内容后在我的机器上对其进行了编辑并忘记了 w 在这里对其进行修改。更新了帖子以反映这一变化
-
@DavidR 没有雪茄。我可能不得不走老式路线并使用大量 .show() 和 .hide()。
标签: javascript php jquery ajax wordpress