将PHP函数连接到AJAX请求:我缺少什么?

时间:2015-07-16 16:18:55

标签: javascript php jquery ajax wordpress

回调消息为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
        }
    });
});

1 个答案:

答案 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()语句结束。