将PHP函数连接到AJAX请求:我缺少什么?
回调消息为0,我无法弄清楚原因。
我试图尽可能地遵循本教程 ,但我显然错过了一些东西。
在Google Chrome上的网络中,每次单击触发表单提交的按钮时,我都会看到正在调用admin-ajax.php
且状态为200。
我究竟做错了什么?
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: "", 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 } }); });
您的操作挂钩名称错误为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()
语句结束。