WordPress管理员Ajax无法正常工作

时间:2018-11-15 18:27:40

标签: php wordpress

我的WordPress插件设置页面中有以下PHP页面:

<input type="button" class="button button-primary" onclick="update(<?php echo $id; ?>)" value="Done">

这是我的JS函数,只需单击按钮即可调用:

function update(id) {

        jQuery('.table100 .blockUI').removeClass('invisible');

        var data = {
            'action': 'update_table',
            'id': id
        };

        var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";

        jQuery.post(ajaxurl, data, function () {
        }).success(function () {
            location.reload();
        }).fail(function (data) {
            jQuery('.table100 .blockUI').addClass('invisible');
            alert('An error occured during the database update!');
        });
    }

这是在执行js函数时应执行的函数:

add_action( 'wp_ajax_update_table', 'update_table' );
function update_table() {
    $id = $_POST['id'];
    global $wpdb;

    if ( $id > 0 && ! empty( $id ) ) {
        $result = $wpdb->update( 'my_table', array( 'xyz' => '1' ), array( 'id' => $id ) );

        if ( empty( $result ) ) {
            wp_send_json_error( null, 400 );
            wp_die();
        }

    } else {
        header( 'HTTP/1.1 500 Internal Server Error' );
        header( 'Content-Type: application/json; charset=UTF-8' );
        die( json_encode( array(
            'message' => 'ERROR. Id missing. Can not update my_table.',
            'code'    => 1337
        ) ) );
    }
}

所有三个部分都在同一页面上,我试图触发它,但是我总是遇到400 Bad Request问题。我已经在PHP函数中添加了一个调试程序,以查找该函数是否被调用但没有结果。

我的目标: 我的目标是更新ID =提交ID的数据库中的值。

0 个答案:

没有答案