回调消息为0,我无法弄清楚原因。
我尽量密切关注this tutorial,但我显然遗漏了一些东西。
在Google Chrome上的网络中,每次单击触发表单提交的按钮时,我都会看到admin-ajax.php
正在调用且状态为200.
我做错了什么?
<form method="POST" action="member-update" enctype="multipart/form-data">
<!-- ... bunch of inputs and stuff in here -->
</form>
error_reporting(-1);
ini_set('display_errors', 'On');
$tm = new TeamManager();
add_action('wp_ajax_member-update', 'member_update');
function member_update() {
echo json_encode("TEST ... ");
}
jQuery('.member-update-button').click(function () {
var parentForm = jQuery(this).closest('form');
var postData = parentForm.serializeArray();
jQuery.ajax({
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: {
action: 'member_update',
postData: postData
},
type: "POST",
dataType: 'json',
success: function (retmsg) {
alert(retmsg); // test for now
},
error: function () {
alert("error"); // test for now
}
});
});
答案 0 :(得分:0)
您的操作挂钩名称wp_ajax_member-update
错误,您的操作称为member_update
因此,您的PHP代码应如下所示:
add_action('wp_ajax_member_update', 'member_update');
function member_update() {
echo json_encode(array('status' => 'ok'));
die();
}
Ajax回调总是需要在WordPress中以die()
语句结束。