使用AJAX调用数据库wordpress更新计数器

时间:2018-02-22 20:16:34

标签: php ajax wordpress

我在我的网站上统计投票,当用户提交表单时,我想要一个ajax调用,它会更新页面底部显示的总投票数。我这样做是通过计算表中的行数来计算的,如下所示:

$rowcount = $wpdb->get_var("SELECT COUNT(*) FROM _db7_forms");

此代码有效,现在我想在用户提交表单时再次调用它。

很难解释所以我代之以显示代码:

我在哪里显示投票数:

 <h1 class="intro"><?php echo $rowcount; ?>00000</h1>

ajax电话(我在其他功能中调用该功能,我已对其进行了测试,因此可以正常工作):

function updateVotes(){
            $.ajax({
                url: '<?php echo admin_url('admin-ajax.php'); ?>',
                type: 'post',
                data: ({
                    action: "callDB"
                }),
                success: function (response){
                    console.log(response);
                    jQuery(".intro").html(response);
                }
            });
        }

检查投票数的查询:

function callDB() {
    $rowcount = $wpdb->get_var("SELECT COUNT(*) FROM _db7_forms");
}

这就是我所得到的,我之前并没有真正使用过AJAX,因此我不太理解我所写的内容。我现在得到的错误是 myurl.com/wp-admin/admin-ajax.php 400(错误请求) 该网址是正确的,该文件存在。

只是要说清楚:给出的错误不是我唯一的问题,我很肯定它不会给我我想要的结果。我也需要帮助完成后续步骤。

1 个答案:

答案 0 :(得分:2)

你有没有试过这个?

function callDB() {
    global $wpdb;
    $rowcount = $wpdb->get_var("SELECT COUNT(*) FROM wp_posts");
    echo $rowcount;
    exit;
}
add_action( 'wp_ajax_callDB', 'callDB' ); 
add_action( 'wp_ajax_nopriv_callDB', 'callDB' );


    function updateVotes(){
        $.ajax({
            url: '<?php echo admin_url('admin-ajax.php'); ?>',
            type: 'post',
            data: ({
                action: "callDB"
            }),
            success: function (response){
                console.log(response);
                jQuery(".intro").text(response);
            }
        });
    }