Ajax没有响应(单页上有多个upvote按钮)

时间:2015-10-04 19:03:22

标签: jquery ajax response

我需要一个upvote系统,在一个帖子列表中,在一个页面上有多个upvote按钮。我拿了一些用ids上的click bind编写的代码,作为第一步,我试图用类和$(this)重写它。它仍然没有在列表中工作(我需要在我认为的ajax中添加$(this))但是在单个帖子中也没有 - 这是当前的问题。 php代码返回成功,但是在我重新加载之前不会更新类似的计数 - 响应为空

的jQuery

// ajax get the upvote click
jQuery( '.first' ).bind( 'click', function(){
    jQuery(this).find( '.vmp_message' ).empty();

    //    error: function(req, err){ console.log('my message' + err); }

    jQuery.ajax( {
        url:ajax_object.ajax_url,
        method:'get',
        dataType:'json',
        data:{
            action:'count_vote_090813',
            post_id:ajax_object.post_id,
            type:'upvote'
        },
        success:function( response ){
            if ( 'error' == response.type ){
                console.log( response );
                //jQuery( '#vmp_message' ).html( response.html );
            }else if( 'success' == response.type ){
                jQuery(this).find( '.vmp_message' ).html( "Success." );
            }else{
            }
        }
    } );
} );

PHP

    $response_type = 'success';

                    $query = "SELECT * FROM `" . TABLE_2 . "` WHERE `post_id` = " . $post_id;
                    $result = $wpdb->get_results( $query, ARRAY_A );

                    if ( 'upvote' == $voting_type ){
                        $html = $result[ 0 ][ 'upvote_count' ];

有人可以解释一下 1 /如何调试这个?如何在控制台中看到什么是hapenning? 2 /如何将ajax绑定到$ this(如果那是错误的)

编辑:

我找到了ajax问题。问题是帖子ID信息,如果单个页面上有多个帖子,则必须以post_id:ajax_object.post_id,之外的其他方式完成。我做了什么:

在模板中

<div class="bloodylike">
       <a href='javascript:void(0)'  data-postid='<?php echo $my_postid; ?>' class='up_count' title='Click to like this post'>
                    LIKE
             </a>
      </div>

在jQuery中

    var postid = jQuery(this).find( 'a' ).data( "postid" );
    ...
    ...
        data:{
            action:'count_vote_090813',
            post_id:postid,
            type:'upvote'

对于回复,我刚刚添加了一行来重新加载它,看看我以后是否会提出一些不那么蹩脚的东西。

0 个答案:

没有答案