当有人点击a标签元素时,这是调用ajax函数的jquery部分。我想要做的是从标签元素中获取数据值,将其传递给php函数,并使用传入的字符串变量运行php函数。 Jquery部分工作,我可以发送数据值,但PHP函数甚至不运行,不知道我做错了什么。
$(function(){
$('#catFilter a').on('click', function(e){
e.preventDefault();
$(this).fadeOut(300);
var x = $(this).attr('data-slug');
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
$.ajax({
url: ajaxurl,
type: 'post',
data: {data: x, action: 'filter'},
success: function(data, status) {
console.log(x);
},
error: function(xhr, desc, err) {
console.log(xhr);
console.log("Details: " + desc + "\nError:" + err);
}
}); // end ajax call
});
});
PHP部分,我想将A标签元素中的数据值添加到PHP数组中,然后使用传入的参数运行该函数。
function filter(){
$x = $_POST['data'];
array_push($needleArray, $x);
post_filter();
die();
}
add_action('wp_ajax_filter', 'filter');
add_action('wp_ajax_nopriv_filter', 'filter');
答案 0 :(得分:0)
Wordpress使用jQuery noConflict模式以避免与可能使用符号$的其他JavaScript库冲突。 你需要改变这个:
$(function(){
// your code
});
对此:
jQuery(function($){
// your code
});
这是使用jQuery的安全方法。 https://developer.wordpress.org/reference/functions/wp_enqueue_script/#user-contributed-notes