2015-06-22 186 views
1

我有这样的jQuery的AJAX喜欢不喜欢剧本喜欢不喜欢功能AJAX

<script> 
$(function(){ 
    var PostID = <?php echo $PostID; ?>; 

    $('.like-btn').click(function(){ 
     $('.dislike-btn').removeClass('dislike-h');  
     $(this).addClass('like-h'); 
     $.ajax({ 
      type:"POST", 
      url:"rate.php", 
      data:'Action=LIKE&PostID='+PostID, 
      success: function(){ 
      } 
     }); 
    }); 
    $('.dislike-btn').click(function(){ 
     $('.like-btn').removeClass('like-h'); 
     $(this).addClass('dislike-h'); 
     $.ajax({ 
      type:"POST", 
      url:"rate.php", 
      data:'Action=DISLIKE&PostID='+PostID, 
      success: function(){ 
      } 
     }); 
    }); 
}); 
</script> 

现在我想这个脚本转换为多后喜欢不喜欢系统。 我该怎么做? HTML看起来像这样:

<a href="#" onclick="RateSystem(LIKE, 1)">Like</a> 
<a href="#" onclick="RateSystem(DISLIKE, 1)">Dislike</a> 

喜欢/不喜欢将采取行动,1将是帖子的ID喜欢/不喜欢。由于

+0

这看起来OK。 “多邮报”是什么意思? – pid

+0

这个脚本每页有一篇文章,但我想在一页上做更多文章。对于这个我需要的功能,但我总是与JavaScript,jQery noob ... –

回答

2

你可以做成这样的东西。每个帖子每个div都带有postId和两个控件(喜欢和不喜欢按钮)。当你点击 - 功能将获得帖子ID并发送邮件到服务器。你必须检查函数的ajax部分。

$(function() { 
    $('.like').click(function() { likeFunction(this); }); 
    $('.dislike').click(function() { dislikeFunction(this);}); 
}); 


function likeFunction(caller) { 
    var postId = caller.parentElement.getAttribute('postid'); 
    $.ajax({ 
     type: "POST", 
     url: "rate.php", 
     data: 'Action=LIKE&PostID=' + postId, 
     success: function() {} 
    }); 
} 
function dislikeFunction(caller) { 
    var postId = caller.parentElement.getAttribute('postid'); 
    $.ajax({ 
     type: "POST", 
     url: "rate.php", 
     data: 'Action=DISLIKE&PostID=' + postId, 
     success: function() {} 
    }); 
} 
<div class="post" postid="10"> 
    <input type="button" class='like' value="LikeButton" /> </input> 
    <input type="button" class='dislike' value="DislikeButton"> </input> 
</div> 

如果你有问题或需要更多的帮助,你可以问我:)

1

如果你想每页超过一个职位,你可以这样做:

function send(action, id) 
{ 
    var opposite; 

    opposite = action === 'like' ? 'dislike' : 'like'; 

    $('#' + opposite + '-' + id).removeClass(opposite + '-h'); 
    $('#' + action + '-' + id).addClass(action + '-h'); 

    $.ajax({ 
     type:"POST", 
     url:"rate.php", 
     data:'Action=' + action + '&PostID=' + id, 
     success: function(){ 
     } 
    }); 
} 

现在,你只需要正确安装的处理程序($PostID必须在一个循环中每一个岗位是不同的):

<a href="#" 
    id="like-<?php echo $PostID; ?>" 
    onclick="send('like', <?php echo $PostID; ?>)">Like</a> 
<a href="#" 
    id="disloke-"<?php echo $PostID; ?>" 
    onclick="send('dislike', <?php echo $PostID; ?>)">Dislike</a> 

这只是一个代码的布局,可能有缺陷。它与我们开始的地方非常不同,所以只有您可以实际测试它并查看需要改进的地方。