我的函数.php文件中有一个从jQuery拉到php的变量。
但是我无法在页面中使用它。
当我从functions.php回显它时,它在chrome中显示在控制台中,但附加了一个..
如果我尝试在模板页面中回显它,我什么也得不到。
以下代码。
的jQuery
var pie = 131;
$.ajax({
url: ajaxurl, //super global supplied by Wordpress; do not change
type: 'POST',
data: {
action: 'get_post_id', //this is correct
pie : pie
},
success: function (data){
console.log(data);
}
});
的functions.php
add_action('wp_head','pluginname_ajaxurl');
function pluginname_ajaxurl() {
?>
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>
<?php
}
add_action( 'wp_ajax_nopriv_get_post_id', 'my_ajax_function' );
add_action( 'wp_ajax_get_post_id', 'my_ajax_function' );
function my_ajax_function() {
$new_pie = isset($_POST['pie']) ? $_POST['pie'] : false;
echo($new_pie);
}
模板page.php文件
<?php echo($new_pie); ?>
提前致谢。
答案 0 :(得分:0)
我在你之前的一个问题中解决了这个问题。
0被附加到Ajax调用,因为在echo之后你需要die()
。
echo $new_pie;
die();
这将阻止0
被追加。
至于从AJAX调用返回数据,你需要对它做一些事情,比如将它附加到元素上。
$('#elementID').append(data);
在这种情况下,elementID
是DIV或P等元素的ID。
<强>旁注强>
没有理由使用以下内容:
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>
Wordpress为您创建了javascript ajaxurl
变量,自WP 2.8以来一直在这样做。