我在读取wordpress ajax函数的响应数据时遇到问题。
我创建了用于提取数据并回显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()抓取用户ID,因为它的值发布要测试。但是,从ajax到#upd-top-row
的响应只是&#39; 0&#39;,我认为这意味着空结果或数组。
通过阅读$ .post,它能够检测到响应格式,因此我不需要定义它。这是真的?我总是使用$ .ajax,但$ .post似乎更简单。
答案 0 :(得分: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");