2014-04-07 2 views
0

wordpress ajax 함수에서 응답 데이터를 읽는 데 문제가 있습니다. wordrpess ajax 응답 만 0을 표시합니다.

가 I 데이터를 당긴 JSON 인코딩 응답 반향 스크립트 작성 :

<?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 } ?> 

사용자 ID가합니다 (.attr에서 움켜되고 :

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(); 
} 

정도, I는 전화를 걸) 테스트할만한 가치가있는 게시물 일뿐입니다. 그러나 아약스에서 #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