jQuery Ajax数据没有插入数据库

时间:2016-11-24 08:54:41

标签: jquery ajax wordpress

我的页面上有一个投票功能,页面访问者应该点击一个按钮,然后该点击将保存在数据库中。数据库中没有保存任何东西:这是jQuery:

jQuery(document).ready(function(){
    jQuery('.site-footer').hide();
    var counter;
    var id;

    jQuery('.fa-plus').click(function(){
        counter = 0;
        id      = jQuery(this).closest('div').prop("id");
        counter = counter+1;
        jQuery(this).css('color','green');
        jQuery(this).parent().html(counter);
        alert(name);

        jQuery.ajax({
            url    : "<?php  $_SERVER['PHP_SELF'] ?>",
            type   : "POST",
            data   : {
                'action' : 'add_votes',
                'counter': counter,
                'id'     : id,
            },
            success:function(response){
                console.log(response);
            }
        });
    });
});

和我的WordPress插入声明:

add_action( 'wp_footer', 'my_action_javascript' ); 
function add_votes(){
    $id = $_POST['id'];
    $votes= $_POST['counter'];
    if( !empty($_POST) ){
        global $wpdb;           
        $wpdb->insert(
            'fwwp_votes',
            array(
                'bride_id' => $id,
                'votes'    => $votes
            ),
            array(
                '%d',
                '%d'
            )
        );

    }   
}
add_action( 'wp_ajax_no_priv_add_votes', 'add_votes' );
add_action( 'wp_ajax_add_votes', 'add_votes' );

1 个答案:

答案 0 :(得分:1)

您提供的url值是错误的。 Wordpress为我们提供了一个统一的文件 - wp-admin / admin-ajax.php。在Wordpress中,您必须始终使用它自己的统一文件admin_url( 'admin-ajax.php' )来通过AJAX发送请求。

替换

url    : "<?php  $_SERVER['PHP_SELF'] ?>",

url    : "<?php  echo admin_url( 'admin-ajax.php' ); ?>",
<{1>}参数中的