2013-11-25 2 views
0

Wordpress 관리자에서 기본 제공 AJAX 기능을 사용하려고합니다. this 튜토리얼을 따라 왔지만 jQuery 스크립트를 실행할 때 데이터가 사용자 메타에 저장되지 않습니다. @ObmerkKronen 지적 내가 (실행 함수 AJAX 페이지를 알려줍니다) 데이터 문자열에서 활동 정의 누락 된 것이 었로Wordpress - Admin-AJAX가 메타 데이터를 저장하지 않습니다.

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

당신은'action : my_action'을 가지고 있지 않습니다. 그리고'$ _POST'가 사용 가능한지 확실하지 않습니다. 함수 내에서 간단한 문자열로 먼저 시도하십시오. –

+0

PHP 코드에서 액션을 듣고 실제로 데이터를 저장하는 함수가 필요하기 때문입니다. 자바 스크립트만으로는 그렇게 할 수 없습니다. – fuxia

+0

@ObmerkKronen : 좋아, 코덱스와 몇 가지 예제를 통해 돌아가서'action = ring_callback'을 formData' 변수에 추가했지만 여전히 아무것도 사용하지 않았습니다. 당신은 더 구체적 일 수 있습니까? 작동 시키려면 in-out을하기 위해 필요한 것이 있습니까? – Plummer

답변

1

당신은 또는 사본에 따라, 데이터 문자열에 action : my_action을해야합니다.

var data = { 
     action: 'my_action', 
     whatever: 1234 
    }; 
+0

는 나중에 오래 걸렸습니다! : P – Plummer

+0

죄송합니다. 3 분간 출장갔습니다. 의견을 말한 후 .. –

0

문제가 있었다.

formData = 'action=ring_callback&ringu='+u+'&ringc='+c+'&ringx='+x; 

또한 함수 이름과 일치하도록 동작 후크의 이름을 변경했습니다. 이 필요했던 경우는 모르겠지만, 내가 찾은 다른 가지를했고, 나는에 맞게 원하는

add_action('wp_ajax_ring_callback', 'ring_callback'); 
관련 문제