【发布时间】:2018-01-17 19:38:42
【问题描述】:
在 WordPress 中,我正在尝试使用 AJAX 发布一个 jQuery 变量,以便稍后在 PHP 中使用。我已经设置了我的 jQuery 函数和回显变量的函数。
我在控制台日志中从 jQuery 函数获得成功消息,但 $_POST 变量为空。
以下是我设置的功能:
function foo_carousel_js() { ?>
<script>
jQuery(document).ready(function($) {
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
var count_ci = $('.selector li').length;
$.ajax({
type: 'POST',
url: ajax_url,
data: {
action : 'foo_item_count',
count_ci : count_ci
},
success:function( data ) {
console.log( data );
}
});
});
</script>
<?php }
add_action( 'wp_footer', 'foo_carousel_js' );
function foo_item_count() {
$k = esc_html( $_POST['count_ci'] );
echo $k;
wp_die();
}
add_action('wp_ajax_foo_item_count', 'foo_item_count');
add_action('wp_ajax_nopriv_foo_item_count', 'foo_item_count');
【问题讨论】:
-
您说
console.log在成功回调中正确显示了您的count_ci值吗? -
@TonyM:是的,确实如此。我无法弄清楚该值如何正确显示在控制台中,但不在 $_POST 变量中。
-
我知道这可能是一个愚蠢的问题:但你怎么知道它不是?
echo $k;似乎正在工作 - 您是否尝试在 Ajax 处理程序函数之外访问$_POST['count_ci'] )?即foo_item_count() -
@TonyM:您的要求很有帮助——我正在尝试在其他地方(处理函数之外)访问/回显 $_POST 变量,但无法访问。跨度>
-
发布了一个答案@chowwy,我不久前遇到了这个确切的问题