我的AJAX代码没有返回AJAX值

时间:2017-03-29 作者:Satrughna

我检查了这么多链接,但在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. 有人能告诉我在哪里写这段代码,这样它就可以工作了。

1 个回复
最合适的回答,由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”。

希望它能帮助你。

相关推荐

WordPress AJAX错误400向远程站点发送数据的错误请求

我正在使用发件人。net获取电子邮件订阅列表。这个网站给了我一些信息,可以将用户的电子邮件添加到订阅列表中。我想使用WordPress ajax来实现这一点。但它返回错误400错误请求。我的代码是:文件ajax新闻脚本。js公司: jQuery(document).ready(function($){ // Perform AJAX send news on form submit $(\'form#fnews\').on(\'submit\', funct