wordpress ajax响应仅显示0

时间:2014-04-07 16:47:27

标签: jquery ajax jquery-post

我在读取wordpress ajax函数的响应数据时遇到问题。

我创建了用于提取数据并回显json编码响应的脚本:

function upd_user_data() {

    global $wpdb; 

    if( isset($_POST['user'] ) ) :

        $userid = $_POST['user'];

        $userdata = array();

        $userdata['key'] = get_usermeta( $userid, 'upd_key' );
        $userdata['hits'] = get_usermeta( $userid, 'upd_hit' );

        $signups = get_users( 'meta_key=upd_referred_user&meta_value='.$key );

        $userdata['signups'] = $signups;

        $userdata['signup_count'] = count($signups);

        echo json_encode($signups);

    else : 

        echo json_encode('Error: no user set.');

    endif;

    die();
}

所以,我打电话:

<?php function upd_get_user_data() { ?>
<script type="text/javascript" >
jQuery(document).ready(function($) {

    $('.upd-user').on('click', function(){

        var upduser = $(this).attr('userid');

        var data = {
            action: 'upd_user_data',
            user: upduser
        };

        //Test to make sure it's grabbing the user id attr
        $('#test').html(upduser);

        $.post(ajaxurl, data, function( data ) {
            $('#upd-top-row').html( data );
        });

    });
});
</script>
<?php } ?>

正在从.attr()抓取用户ID,因为它的值发布要测试。但是,从ajax到#upd-top-row的响应只是&#39; 0&#39;,我认为这意味着空结果或数组。

通过阅读$ .post,它能够检测到响应格式,因此我不需要定义它。这是真的?我总是使用$ .ajax,但$ .post似乎更简单。

1 个答案:

答案 0 :(得分:1)

upd_user_data()功能下添加此代码。

add_action("wp_ajax_upd_user_data", "upd_user_data");
add_action("wp_ajax_nopriv_upd_user_data", "upd_user_data");