2014-04-07 95 views
0

我有一个问题,从wordpress ajax函数读取响应数据。wordrpess ajax响应只显示0

我创建的脚本提取数据和回声一个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抓起( )就好,因为它是测试的价值帖子。但是,从ajax到#upd-top-row的响应仅为'0',我假设这意味着一个空的结果或数组。

从阅读$ .post,它能够检测到响应格式,所以我不需要定义它。这是真的?我一直使用$ .ajax,但$ .post似乎更简单。

回答

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"); 
+0

我没有更新任何用户数据,只是抓住了它。 – Plummer

+0

NM,我陷入了困境。谢谢! – Plummer

+0

没问题!如果您不介意将此标记为正确答案,我将不胜感激! – DNACode