ajax in admin menu

时间:2013-11-25 作者:Tim Plummer

遵循列出的教程here, 很抱歉,数据没有保存到我试图设置的用户元中。这个过程本身似乎很简单,但元数据没有被保存。在运行jQuery脚本时,我没有遇到任何控制台错误和运行的小成功动画。

<?php
    add_action( \'admin_footer\', \'ring_jquery\' );

    function ring_jquery() {
?>
<script type="text/javascript">
    jQuery(\'.ring-submit\').on(\'click\', function(){
        var u = jQuery(this).attr(\'user\'),
            c = jQuery(\'.agt_ringc[user="\'+u+\'"]\').val(),
            x = jQuery(\'.agt_ringx[user="\'+u+\'"]\').val(),
            formData = \'ringu=\'+u+\'&ringc=\'+c+\'&ringx=\'+x;
        jQuery.ajax({
            url: \'<?php echo admin_url(\'admin-ajax.php\'); ?>\',
            type: \'POST\',
            data: formData,
            success: function(e){

                jQuery(\'.success[user="\'+u+\'"]\').fadeIn(400).delay(400).fadeOut(400);

            },
            error: function(){

                jQuery(\'.fail[user="\'+u+\'"]\').fadeIn(400).delay(400).fadeOut(400);

            }
        });
    });

</script>
<?php
} //End ring_jquery()

add_action(\'wp_ajax_my_action\', \'ring_callback\');

function ring_callback() {
    global $wpdb; // this is how you get access to the database

    $ringu = $_POST[\'ringu\'];
    $ringc = $_POST[\'ringc\'];
    $ringx = $_POST[\'ringx\'];

    update_user_meta($ringu,\'agt_ringc\',$ringc);
    update_user_meta($ringu,\'agt_ringx\',$ringx);

    die(); // this is required to return a proper result
}
?>

1 个回复
最合适的回答,由SO网友:sri 整理而成

add_action(\'wp_ajax_ring_callback\', \'ring_callback\');
应该是启用ring\\u回调函数调用时必须使用的挂钩。

结束

相关推荐

在WordPress AJAX API中使用主干

我试图使用主干构建一个简单的TODO插件,但遇到了AJAX API的问题。为了获得正确的AJAX回调,必须像下面这样传入“action”参数:管理ajax。php?操作=获取\\u待办事项对于主干中的GET方法来说,它工作得很好。但是,使用DELETE主干时,默认情况下将使用如下URL:管理ajax。php?操作=获取待办事项/9其中,“9”是要删除的todo的ID。通过添加这个ID,它中断了WordPress端的AJAX调用。我可以手动覆盖每个方法的URL,但我想知道是否有更优雅的方法让AJAX API