2014-04-07 129 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