我检查了这么多链接,但在wordpress中使用ajax没有成功。
Foooter.php
<script type="text/javascript">
var ajaxurl = "<?php echo admin_url(\'admin-ajax.php\'); ?>";
</script>
custom.js
jQuery(\'#elementid\').on(\'keyup\', jqueryfunction);
function jqueryfunction(id) {
var value = jQuery(this).val();
if (value.length > 3) {
jQuery.ajax({
url: ajaxurl,
type: \'POST\',
data: \'value=\' + value,
success: function (data) {
console.log(data);
}
});
} else {
$(\'.showcount\').remove();
}
}
functions.php// I think i am wrong here. I don\'t know where to write this code
wp_enqueue_script(\'jquery\');
function mycustomfunction() {
echo "Function found";
}
add_action(\'wp_ajax_mycustomfunction\', \'mycustomfunction\');
add_action(\'wp_ajax_nopriv_mycustomfunction\', \'mycustomfunction\');
在控制台中仅显示
0 但它应该显示
Function found. 有人能告诉我在哪里写这段代码,这样它就可以工作了。
最合适的回答,由SO网友:Harry 整理而成
在上述情况下,ajax请求没有到达php函数,因此它什么也找不到。使用以下命令更新jquery函数
function jqueryfunction(id) {
var value = jQuery(this).val();
if (value.length > 3) {
jQuery.ajax({
url: ajaxurl,
type: \'POST\',
data: {
action: \'mycustomfunction\',
value: value,
},
success: function (data) {
console.log(data);
}
});
} else {
$(\'.showcount\').remove();
}
}
正如您所看到的,我在wp\\u ajax\\u之后添加了一个参数“action”,它是您的ajax请求的名称。
还可以使用更新php函数
function mycustomfunction() {
echo "Function found";
die; //wp_die();
}
在函数末尾添加die,否则您将看到ajax响应为“0”。
希望它能帮助你。