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
}
?>
당신은'action : my_action'을 가지고 있지 않습니다. 그리고'$ _POST'가 사용 가능한지 확실하지 않습니다. 함수 내에서 간단한 문자열로 먼저 시도하십시오. –
PHP 코드에서 액션을 듣고 실제로 데이터를 저장하는 함수가 필요하기 때문입니다. 자바 스크립트만으로는 그렇게 할 수 없습니다. – fuxia
@ObmerkKronen : 좋아, 코덱스와 몇 가지 예제를 통해 돌아가서'action = ring_callback'을 formData' 변수에 추가했지만 여전히 아무것도 사용하지 않았습니다. 당신은 더 구체적 일 수 있습니까? 작동 시키려면 in-out을하기 위해 필요한 것이 있습니까? – Plummer